Android 中Animations的使用 代码篇

来源:互联网 发布:dijkstra算法证明 编辑:程序博客网 时间:2024/05/19 00:42
Android 中Animations的使用xml篇http://blog.csdn.net/leirenbaobao/article/details/42395153

这里讨论如何在代码中实现Animations的效果。

注:屏幕左上角是坐标零点,往下往右为y,x正方向

在代码中设置Animations的步骤:

1.创建一个AnimationSet对象; 

2.增加需要创建相应的Animation对象;

3.为Animation对象设置相应的数据; 

4.将Animatin对象添加到AnimationSet对象当中; 

5.使用控件对象开始执行AnimationSet。

alpha效果:

//新建AnimationSet对象,true表示使用默认的interpolater效果AnimationSet animationSet = new AnimationSet( true);//设置淡入淡出效果, 1是起始透明度, 0是结束透明度AlphaAnimation alphaAnimation = new AlphaAnimation(1, 0);//设置动画时长alphaAnimation.setDuration(5000);//将动画效果添加至集合中animationSet.addAnimation(alphaAnimation);//开始动画view.startAnimation(animationSet);

Scale效果:

//新建AnimationSet对象,true表示使用默认的 interpolater效果AnimationSet animationSet = new AnimationSet( true);//设置缩放效果,第一个0,1是x轴起始、结束拉伸, 第二个0,1是y轴起始、结束拉伸ScaleAnim ation scaleAnimation = new ScaleAnimation(0, 1, 0, 1);//设置动画时长scaleAnimation.setDuration(5000);//将动画效果添加至集合中animationSet.addAnimation(scaleAnimation);//开始动画view.startAnimation(animationSet);

Rotate效果:

//新建AnimationSet对象,true表示使用默认的 interpolater效果AnimationSet animationSet = new AnimationSet( true);//设置旋转效果,从90度到270度RotateAnimation rotateAnimation = new RotateAnimation(90, 270);//设置动画时长rotateAnimation.setDuration(5000);//将动画效果添加至集合中animationSet.addAnimation(rotateAnimation);//开始动画view.startAnimation(animationSet);

translate效果:
// 新建AnimationSet对象,true表示使用默认的 interpolater效果AnimationSet animationSet = new AnimationSet( true);// 设置移动效果//参数列表, int fromXType, float fromXValue, int toXType, float toXValue, int fromYType, float fromYValue, int toYType, float toYValue//以fromXType,fromXValue为例//fromXType有三种可选的值Animation.ABSOLUTE, Animation.RELATIVE_TO_SELF, or Animation.RELATIVE_TO_PARENT//Animation.ABSOLUTE是绝对尺寸,当填入这个值时,Value值就可以填入具体的 dp值//Animation.RELATIVE_TO_SELF是相对自己的尺寸,只能填入倍数,如下代码是向右下角平移0.5个自己的长度//Animation.RELATIVE_TO_PARENT是相对父空间的尺寸TranslateAnimation translateAnimation = new TranslateAnimation(Animation.RELATIVE_TO_SELF , 0f, Animation.RELATIVE_TO_SELF , 0.5f, Animation.RELATIVE_TO_SELF , 0f, Animation.RELATIVE_TO_SELF , 0.5f);// 设置动画时长translateAnimation.setDuration(2000);// 将动画效果添加至集合中animationSet.addAnimation(translateAnimation);// 开始动画view.startAnimation(animationSet);

Animation还有一些通用方法用来设置相关状态:

1、setFillAfter(boolean)
如果boolean为true,则执行动画后,控件将停留在动画结束之后的状态。

2、setFillBefore(boolean)
如果boolean为true,则执行动画后,控件将回到在动画开始之前的状态。

3、setStartOffSet(long)
设置动画开始之前的等待时间。

4、setRepeatCount(int)
动画重复执行的次数。

5、setRepeatMode(int)
当设置成Animation.INFINITE死循环执行。

ctrlz presents!

0 0
原创粉丝点击