专题介绍:动画准备
专题一:Android动画专题之逐帧动画
正文开始
上篇文章介绍了Android中关于逐帧动画的使用,本篇继续我的动画专题,来介绍补间动画(Tweened Animation,也有称为View Animation)。
老规矩,先上官网介绍(细看点此处):
(官网截图)
上面这段话指出tweened animation动画,主要可以改变位置,大小,角度等(还有透明度其实)。
补间动画包含下面四种:
①AlphaAnimation:透明动画
②RotateAnimation:旋转动画
③TranslateAnimation:位移动画
④ScaleAnimation:缩放动画
各个动画的效果就如同名字一样。都是继承于android.view.animation.Animation。下面依次介绍四种动画的使用:
1.AlphaAnimation动画
改变透明度的动画,透明度从0~1,使用时指定开始透明度,结束透明度和持续时间。
xml布局如下:
<!--透明动画-->
<alpha android:fromAlpha="1.0"
android:toAlpha="0.0"
android:duration="3000"/>
Java关键代码:
Animation alpha = AnimationUtils.loadAnimation(this,R.anim.tween_anim);
mPlayScreen.startAnimation(alpha);
alpha.setFillAfter(true);//动画结束后保持结束状态
我们也可以直接在代码中使用该动画:
AlphaAnimation aa = new AlphaAnimation(0,1);
aa.setDuration(3000);
mPlayScreen.startAnimation(aa);
2.RotateAnimation动画
<!--旋转动画-->
<rotate android:fromDegrees="180"
android:toDegrees="0"
android:pivotX="50%"
android:pivotY="50%"
android:duration="5000"/>
XML属性 | 解释 | 备注 |
fromDegress | 旋转开始角度,正代表顺时针度数,负代表逆时针度数 | |
toDegrees | 旋转结束角度,正代表顺时针度数,负代表逆时针度数 | |
pivotX | 缩放起点X坐标 | |
pivotY | 缩放起点Y坐标 |
Java关键代码:
Animation rotate = AnimationUtils.loadAnimation(this,R.anim.tween_anim);
mPlayScreen.startAnimation(rotate);
在代码中使用;
RotateAnimation ra = new RotateAnimation(180,0,50,50);
ra.setDuration(3000);
mPlayScreen.startAnimation(ra);
3. TranslateAnimation动画
XML代码:
<translate android:fromXDelta="0"
android:fromYDelta="0"
android:toXDelta="200"
android:toYDelta="200"
android:duration="3000"/>
XML属性 | 解释 | 备注 |
fromXDelta | 起始点X轴坐标 | |
fromYDelta | 起始点Y轴坐标 | |
toXDelta | 结束点X轴坐标 | |
toYDelta | 结束点Y轴坐标 |
Java关键代码:
Animation translate = AnimationUtils.loadAnimation(this,R.anim.tween_anim);
mPlayScreen.startAnimation(translate);
translate.setFillAfter(true);
在代码中使用:
TranslateAnimation ta = new TranslateAnimation(0,200,0,300);
ta.setDuration(3000);
mPlayScreen.startAnimation(ta);
4.ScaleAnimation动画
XML中代码:
<!--缩放动画-->
<scale android:fromXScale="0.1"
android:toXScale="1"
android:fromYScale="0.1"
android:toYScale="1"
android:pivotX="50%"
android:pivotY="50%"
android:duration="3000"/>
Java关键代码:
Animation scale = AnimationUtils.loadAnimation(this,R.anim.tween_anim);
mPlayScreen.startAnimation(scale);
在代码中使用:
ScaleAnimation sa = new ScaleAnimation(0,2,0,2);
sa.setDuration(3000);
mPlayScreen.startAnimation(sa);
上面是分别使用每个动画,我们也可以将这些动画放在动画集合(AnimationSet)中使用。
AnimationSet as = new AnimationSet(true);
as.setDuration(3000);
AlphaAnimation aa = new AlphaAnimation(0,1);
aa.setDuration(3000);
as.addAnimation(aa);
//TODO TranslateAnimation、RotateAnimation、ScaleAnimation等可以继续添加