Android 动画机制 之 视图动画

视图动画使用比较简单!

共有四种动画方式
AlphaAnimation 透明度动画
RotateAnimation 旋转动画
TranslateAnimation 位移动画
ScaleAnimation 缩放动画

还有一个动画集合,可以把以上四种动画放在一起,形成一个综合的动画!

优点:使用简单,效率高
缺点:不具备交互性(当发生视图动画后,其响应事件的位置还在动画前的地方)

一. AlphaAnimation 透明度动画

构造器
AlphaAnimation(float fromAlpha, float toAlpha)

fromAlpha开始时的透明度
toAlpha结束时的透明度

0代表完全透明
1代表不透明

AlphaAnimation alphaAnimation = new AlphaAnimation(0, 1);
alphaAnimation.setDuration(2000);
textView.startAnimation(alphaAnimation);

二.RotateAnimation 旋转动画

构造器
RotateAnimation(float fromDegrees, float toDegrees, int pivotXType, float pivotXValue, int pivotYType, float pivotYValue)

fromDegrees开始时的角度
toDegrees结束时的角度
pivotXType X轴坐标系的参考标准
RotateAnimation.RELATIVE_TO_SELF 以自身的左顶点为原点
RotateAnimation.RELATIVE_TO_PARENT 以父布局的左顶点为原点
pivotXValue 范围(0f-1f)0.5f 代表自身的一半

pivotYType Y轴坐标系的参考标准
pivotYValue 范围(0f-1f)0.5f 代表自身的一半

若不指定坐标系的类型和范围,默认是自身的左顶点

三.TranslateAnimation 位移动画

构造器
TranslateAnimation(int fromXType, float fromXValue, int toXType, float toXValue, int fromYType, float fromYValue, int toYType, float toYValue)

fromXType 相对坐标系的类型
fromXValue 开始时的x轴的位置
…同上

四.ScaleAnimation 缩放动画

构造器
ScaleAnimation(float fromX, float toX, float fromY, float toY, int pivotXType, float pivotXValue, int pivotYType, float pivotYValue)

参数解释同上…

动画集合
AnimationSet

可以添加多个动画
例如:animationSet.addAnimation(alphaAnimation);
animationSet.addAnimation(rotateAnimation);
animationSet.addAnimation(translateAnimation);
animationSet.addAnimation(scaleAnimation);

开启动画的方式:view.startAnimation(animationSet/alphaAnimation…);

动画的监听回调

animationSet.setAnimationListener(new Animation.AnimationListener() {
            @Override
            public void onAnimationStart(Animation animation) {
                Toast.makeText(CeshiActivity.this, "动画开始时", Toast.LENGTH_SHORT).show();
            }

            @Override
            public void onAnimationEnd(Animation animation) {
                Toast.makeText(CeshiActivity.this, "动画结束时", Toast.LENGTH_SHORT).show();
            }

            @Override
            public void onAnimationRepeat(Animation animation) {
                Toast.makeText(CeshiActivity.this, "动画重复时", Toast.LENGTH_SHORT).show();
            }
        });

好了,就是这么简单,来试试吧!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值