Android动画相关
2016-07-03 本文已影响13人
王元
Animation 动画
AlphaAnimation 渐变透明度
RotateAnimation 画面旋转
ScaleAnimation 渐变尺寸缩放
TranslateAnimation 位置移动
AnimationSet 动画集
1,帧动画(Frame Animation,也称Drawable Animation)
animation_list.xml
<?xml version="1.0" encoding="utf-8"?>
<animation-list xmlns:android="http://schemas.android.com/apk/res/android"
android:oneshot="false">
<item android:drawable="@drawable/bg1" android:duration="150"></item>
<item android:drawable="@drawable/bg2" android:duration="150"></item>
<item android:drawable="@drawable/bg3" android:duration="150"></item>
<item android:drawable="@drawable/bg4" android:duration="150"></item>
<item android:drawable="@drawable/bg5" android:duration="150"></item>
<item android:drawable="@drawable/bg6" android:duration="150"></item>
<item android:drawable="@drawable/bg7" android:duration="150"></item>
</animation-list>
代码中给ImageView设置动画,然后启动动画
mIvLoadinAnim.setImageResource(R.drawable.animation_white_list);
AnimationDrawable animDrawable = (AnimationDrawable) mIvLoadinAnim.getDrawable();
animDrawable.start();
停止动画
animDrawable.stop();
2,补间动画(Tween Animation)
该类animations提供了旋转(Rotate),移动(translate),缩放(scale)和渐变(alpha)效果
3,属性动画(Property Animation)
属性动画,一般情况下都是写在res/anim包下。为了在描述方便所有的动画都名称都是loading_anim.xml
缩放动画
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<scale
android:interpolator="@android:anim/decelerate_interpolator"
android:fillAfter="false"
android:fromXScale="1"
android:fromYScale="1"
android:toXScale="1.8"
android:toYScale="1.8"
android:pivotX="50.0%"
android:pivotY="50.0%"
android:duration="120"
android:repeatCount="1"
android:repeatMode="reverse"/>
</set>
移动动画
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android" >
<translate
android:duration="500"
android:toYDelta="100%p" />
</set>
渐变动画
<?xml version="1.0" encoding="utf-8"?>
<alpha xmlns:android="http://schemas.android.com/apk/res/android"
android:duration="400"
android:fromAlpha="0.0"
android:toAlpha="1.0" />
旋转动画
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<rotate
android:fromDegrees="0.0"
android:toDegrees="360.0"
android:pivotX="50%"
android:pivotY="50%"
android:duration="1000"
android:repeatMode="restart"
android:repeatCount="infinite"/>
</set>
代码中调用的方法(启动方法)
mLoadingAnimation = AnimationUtils.loadAnimation(context, R.anim.loading_anim);
mLoadingAnimation.setInterpolator(new LinearInterpolator());// 不停顿(设置播放的速度,匀速,加速,减速)
mLoadingAnimation.setFillAfter(true);
mIvLoadinAnim.startAnimation(mLoadingAnimation);
停止动画方法:
animDrawable.cancle();
讲的还不够详细,后期会慢慢补充(有好的意见或者建议,欢迎留言)