Android 中Animations的使用 代码篇

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!

你可能感兴趣的:(Android自定义view)