android 多图片 动画效果,在安卓中使用AnimationSet类同时执行多种动画效果

在安卓开发中,AnimationSet允许一个界面组件同时执行多种动画效果,例如一边旋转,一边移动,同时缩放尺寸。

而AnimationSet类本身是Animation类的子类,而Animation类则是用于实现基础动画效果的。

其实用AnimationSet同时执行多种动画效果特别简单,这个类顾名思义,就是多个Animation实例的一个集合,直接看代码:

* 一次执行所有的动画效果

* @param view

*/

public void executeAllAnimations(View view){

/*

* 创建一个AnimationSet,它能够同时执行多个动画效果

* 构造方法的入参如果是“true”,则代表使用默认的interpolator,如果是“false”则代表使用自定义interpolator

*/

AnimationSet animationSet = new AnimationSet(true);

/*

* 创建一个半透明效果的动画对象,效果从完全透明到完全不透明

*/

AlphaAnimation alphaAnimation = new AlphaAnimation(0,1);

/*

* 设置动画的持续时间

*/

alphaAnimation.setDuration(3000);

/*

* 创建一个旋转动画对象

* 入参列表含义如下:

* 1.fromDegrees:从哪个角度开始旋转

* 2.toDegrees:旋转到哪个角度结束

* 3.pivotXType:旋转所围绕的圆心的x轴坐标的类型,有ABSOLUT绝对坐标、RELATIVE_TO_SELF相对于自身坐标、RELATIVE_TO_PARENT相对于父控件的坐标

* 4.pivotXValue:旋转所围绕的圆心的x轴坐标,0.5f表明是以自身这个控件的一半长度为x轴

* 5.pivotYType:y轴坐标的类型

* 6.pivotYValue:y轴坐标

*/

RotateAnimation rotateAnimation = new RotateAnimation(0,360, Animation.RELATIVE_TO_SELF,0.5f,Animation.RELATIVE_TO_SELF,0.5f);

/*

* 设置动画的持续时间

*/

rotateAnimation.setDuration(3000);

/*

* 创建一个缩放效果的动画

* 入参列表含义如下:

* fromX:x轴的初始值

* toX:x轴缩放后的值

* fromY:y轴的初始值

* toY:y轴缩放后的值

* pivotXType:x轴坐标的类型,有ABSOLUT绝对坐标、RELATIVE_TO_SELF相对于自身坐标、RELATIVE_TO_PARENT相对于父控件的坐标

* pivotXValue:x轴的值,0.5f表明是以自身这个控件的一半长度为x轴

* pivotYType:y轴坐标的类型

* pivotYValue:轴的值,0.5f表明是以自身这个控件的一半长度为y轴

*/

ScaleAnimation scaleAnimation = new ScaleAnimation(0,0.1f,0,0.1f,Animation.RELATIVE_TO_SELF,0.5f,Animation.RELATIVE_TO_SELF,0.5f);

/*

* 设置动画的持续时间

*/

scaleAnimation.setDuration(3000);

/*

* 创建一个移动动画效果

* 入参的含义如下:

* fromXType:移动前的x轴坐标的类型

* fromXValue:移动前的x轴的坐标

* toXType:移动后的x轴的坐标的类型

* toXValue:移动后的x轴的坐标

* fromYType:移动前的y轴的坐标的类型

* fromYValue:移动前的y轴的坐标

* toYType:移动后的y轴的坐标的类型

* toYValue:移动后的y轴的坐标

*/

TranslateAnimation translateAnimation = new TranslateAnimation(Animation.RELATIVE_TO_SELF,0,Animation.RELATIVE_TO_SELF,0.5f,Animation.RELATIVE_TO_SELF,0,Animation.RELATIVE_TO_SELF,0.5f);

/*

* 设置动画的持续时间

*/

translateAnimation.setDuration(3000);

/*

* 将四种动画效果放入同一个AnimationSet中

*/

animationSet.addAnimation(alphaAnimation);

animationSet.addAnimation(rotateAnimation);

animationSet.addAnimation(scaleAnimation);

animationSet.addAnimation(translateAnimation);

/*

* 同时执行多个动画效果

*/

view.startAnimation(animationSet);

}

---------------------

作者:女儿控伪全栈老徐

来源:CSDN

原文:https://blog.csdn.net/freezingxu/article/details/70919263

版权声明:本文为博主原创文章,转载请附上博文链接!

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值