Android--补间动画

本文详细介绍了Android中四种基本的视图动画:旋转动画、透明度动画、缩放动画和平移动画的实现方法,包括动画参数设置、执行方式及如何组合多种动画。通过实例展示了如何使用Java代码创建并应用这些动画效果。
摘要由CSDN通过智能技术生成

 

旋转动画

 RotateAnimation ra = new RotateAnimation(0
                        ,720
                        , Animation.RELATIVE_TO_SELF  //相对于自身的0.5
                        ,0.5f
                        ,Animation.RELATIVE_TO_SELF   //相对于自身的0.5
                        ,0.5f);
                ra.setDuration(800);
                ra.setRepeatCount(1);       //循环次数1次
                ra.setRepeatMode(Animation.REVERSE);  //反转
                imageView.startAnimation(ra);

透明度动画

        //参数1:起始透明度 参数2:结束透明度
        AlphaAnimation aa = new AlphaAnimation(1.0f, 0.5f);
        aa.setDuration(2000);
        //停留在动画执行完的状态
        //aa.setFillAfter(true);
        //设置重复次数 实际次数为传的实际参数+1 常量INFINITE代表无限次
        aa.setRepeatCount(Animation.INFINITE);
        //设置重复模式 常量REVERSE是类似钟摆的过度变化效果
        aa.setRepeatMode(Animation.REVERSE);
        //让iv控件执行此动画
        iv.startAnimation(aa);

旋转动画

        ScaleAnimation sa = new ScaleAnimation(1, 2
                , 1, 2
                , Animation.RELATIVE_TO_SELF
                , 0.5f
                , Animation.RELATIVE_TO_SELF
                , 0.5f);
        sa.setDuration(2000);
        iv.startAnimation(sa);

缩放动画

        ScaleAnimation sa = new ScaleAnimation(1, 2
                , 1, 2
                , Animation.RELATIVE_TO_SELF
                , 0.5f
                , Animation.RELATIVE_TO_SELF
                , 0.5f);
        sa.setDuration(2000);
        iv.startAnimation(sa);

平移动画(顺便加上让元素平移出屏幕然后停留在屏幕外面)

        //模拟将图像移出手机屏幕
        //获取当前屏幕的宽度
        int width = getWindowManager().getDefaultDisplay().getWidth();
        //创建平移补间动画对象 参数1:x起始点 参数2:x结束点 参数3:y起始点 参数4:y结束点
        TranslateAnimation ta = new TranslateAnimation(0, width
                , 0, 0);
        //设置停留在平移后的状态
        ta.setFillAfter(true);
        ta.setDuration(2000);
        iv.startAnimation(ta);

多种补间动画同时执行

        AlphaAnimation aa = new AlphaAnimation(1.0f, 0.5f);
        aa.setDuration(2000);
        TranslateAnimation ta = new TranslateAnimation(0, 100
                , 0, 100);
        ta.setDuration(2000);
        ScaleAnimation sa = new ScaleAnimation(1, 2
                , 1, 2
                , Animation.RELATIVE_TO_SELF
                , 0.5f
                , Animation.RELATIVE_TO_SELF
                , 0.5f);
        sa.setDuration(2000);
        AnimationSet as = new AnimationSet(false);
        as.addAnimation(aa);
        as.addAnimation(ta);
        as.addAnimation(sa);
//      as.setDuration(2000);
        iv.startAnimation(as);

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值