Android动画专题之补间动画

来源:互联网 发布:c语言购物卡制卡系统 编辑:程序博客网 时间:2024/05/17 05:15

专题介绍:动画准备

专题一: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等可以继续添加                





0 0