AnimationSet类:动画集合类

本文介绍如何使用Android的AnimationSet类实现组合动画效果。通过示例代码展示了如何设置位置变化、尺寸变化及透明度变化等动画,并将其组合在一起应用到ImageView上。

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

AnimationSet类是Android系统中的动画集合类,用于控制View对象进行多个动作的组合,该类继承于Animation类。 AnimationSet类中的很多方法都与Animation类一致,该类中最常用的方法便是addAnimation方法,该方法用于为动画集合对象 添加动画对象。

【基本语法】public void addAnimation (Animation a)

其中,参数a为Animation动画对象,可以是前述任何一种补间动作。

【实例演示】下面通过代码来演示如何设置一个组合动画效果。

 
 
 
 
 
 
 
 
 public class firstActivity extends Activity {   /** Called when the activity is first created. */   @Override   public void onCreate(Bundle savedInstanceState) {               //重载onCreate方法       super.onCreate(savedInstanceState);       setContentView(R.layout.main);         final ImageView image=(ImageView)findViewById(R.id.imageView1); //ImageView对象       Button btn1=(Button)findViewById(R.id.button1);             //按钮对象       Button btn2=(Button)findViewById(R.id.button2);       final Animation translateAnimation=new TranslateAnimation(0,300,0,300);                                                                 //设置位置变化动画       final Animation scaleAnimation = new         ScaleAnimation(0f,1f,0f,1f,Animation.RELATIVE_TO_SELF,0.5f,Animation.RELATIVE_TO_SELF,0.5f);                                                               //设置尺寸变化动画       final Animation alphaAnimation=new AlphaAnimation(0.1f,1.0f);   //设置透明度变化动画       btn1.setOnClickListener(new View.OnClickListener() {            //设置监听器                      @Override           public void onClick(View v) {               // TODO Auto-generated method stub               translateAnimation.setDuration(10000);      //设置位置变化动画的持续时间               scaleAnimation.setDuration(10000);          //设置尺寸变化动画的持续时间               alphaAnimation.setDuration(10000);          //设置透明度渐变动画的持续时间               AnimationSet set=new AnimationSet(true);    //创建动画集对象               set.addAnimation(translateAnimation);       //添加位置变化动画               set.addAnimation(scaleAnimation);           //添加尺寸变化动画               set.addAnimation(alphaAnimation);           //添加透明度渐变动画               set.setFillAfter(true);                 //停留在最后的位置               set.setFillEnabled(true);               image.setAnimation(set);                    //设置动画               set.startNow();                         //启动动画           }       });       btn2.setOnClickListener(new View.OnClickListener() {    //设置监听器                      @Override           public void onClick(View v) {               // TODO Auto-generated method stub               set.cancel();                               //取消动画执行           }       });   }   }

在这段代码中,首先构造了位置变化、尺寸变化和透明度变化动画的对象。然后,在第一个按钮监听器中分别设置了动画的持续时间,并通过 addAnimation方法添加到动画集中,之后启动该动画。在第二个按钮监听器中取消该动画。读者运行这段代码,将会看到如图9.13所示的显示效 果。图片从小到大,由浅入深,从左上角向右下角移动。当动画结束的时候,图片对象将停留在结束点的位置,如图9.14所示。

 
图9.13  组合动画
 
图9.14  最终位置

【责任编辑: book TEL:(010)68476606】

转载于:https://my.oschina.net/cuitongliang/blog/164379

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值