Android动画专题之补间动画

本文深入探讨了Android中的补间动画,包括Alpha、Rotate、Translate和Scale四种类型。AlphaAnimation涉及透明度变化,RotateAnimation实现旋转效果,TranslateAnimation用于平移,而ScaleAnimation则关注缩放。每种动画都详细阐述了其作用和使用方法,通过XML布局和Java代码示例进行演示。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

专题介绍:动画准备

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





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值