Android Animation 动画做欢迎界面

今天写了个欢迎界面用到RotateAnimation 、ScaleAnimation 、AlphaAnimation 这三个动画:
先贴主要代码,下面在讲

public class WelcomeUI extends Activity {

    private static final long animation_duration = 1500;

    private View mRootView;  //欢迎界面根视图ID

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.welcome);
        //初始化根视图ID
        mRootView = findViewById(R.id.welcome_root);


        //旋转动画
        RotateAnimation rotateAnimation = new RotateAnimation(0f,  //起始角度
                                                            360f,  //终止角度
                                                            Animation.RELATIVE_TO_SELF, //可以取值为ABSOLUTE、RELATIVE_TO_SELF、RELATIVE_TO_PARENT
                                                            0.5f,   //x坐标的伸缩值
                                                            Animation.RELATIVE_TO_SELF,  //可以取值为ABSOLUTE、RELATIVE_TO_SELF、RELATIVE_TO_PARENT
                                                            0.5f);  //y坐标的伸缩值

        rotateAnimation.setDuration(animation_duration);   //设置动画时长
        rotateAnimation.setFillAfter(true);  //设置动画结束后停留的位置
        //缩放动画
        ScaleAnimation scaleAnimation = new ScaleAnimation(0f,  //动画起始时 X坐标上的伸缩尺寸
                                                            1f, //动画结束时 X坐标上的伸缩尺寸
                                                           0f,   //动画起始时 y坐标上的伸缩尺寸
                                                           1f,  //动画结束时 y坐标上的伸缩尺寸
                                                            Animation.RELATIVE_TO_SELF, //可以取值为ABSOLUTE、RELATIVE_TO_SELF、RELATIVE_TO_PARENT
                                                            0.5f,   //x坐标的伸缩值
                                                            Animation.RELATIVE_TO_SELF,  //可以取值为ABSOLUTE、RELATIVE_TO_SELF、RELATIVE_TO_PARENT
                                                            0.5f);  //y坐标的伸缩值

        scaleAnimation.setDuration(animation_duration);
        rotateAnimation.setFillAfter(true);
        //淡入动画
        AlphaAnimation alphaAnimation = new AlphaAnimation(0,1);
        alphaAnimation.setDuration(animation_duration);
        rotateAnimation.setFillAfter(true);

        //动画集合
        AnimationSet set = new AnimationSet(false);  //是否加入Interpolator可以定义动画播放的速度,对所有对象都有效
        set.addAnimation(rotateAnimation);
        set.addAnimation(scaleAnimation);
        set.addAnimation(alphaAnimation);
        //设置动画
        mRootView.startAnimation(set);

    }


}

下面是布局文件

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/welcome_root"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@drawable/splash_bg_newyear">

    <ImageView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerInParent="true"
        android:src="@drawable/splash_sheep_newyear" />

</RelativeLayout>

Android的动画有4种,RatateAnimation旋转,ScaleAnimation 缩放,AlphaAnimation淡入,还有一个是TranslateAnimation移动。知道这四个动画的参数后基本就会了,前三个动画上面的代码已经写有了,并且有注释,这个例子没用到移动,照葫芦画瓢弄懂他的参数就好了这里贴一个连接,这个帖子写得很好:
这里写链接内容

当设置多个动画的时候,需要一个动画集合:

 //动画集合
        AnimationSet set = new AnimationSet(false);  //是否加入Interpolator可以定义动画播放的速度,对所有对象都有效
        set.addAnimation(rotateAnimation);
        set.addAnimation(scaleAnimation);
        set.addAnimation(alphaAnimation);

有个主意的地方是动画集可以加入Interpolator可以定义动画播放的速度,对所有动画有效

总结:需要什么做动画就为他取个ID,然后用这个ID设置动画,多个动画的时候可用动画集。主要是弄清参数的意思!
ss
初学者,可能写的不好,主要是帮助自己记忆

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值