标签:
Animations的使用(一)--
Animations提供了一系列的动画效果,这些效果可以应用在绝大多数的控件。
旋转,缩放,淡入淡出。可以用在大多数控件中,
从总体上来讲分两大类:
第一类:Tweened Animations 渐变动画
该类Animations提供了旋转,移动,伸展和淡入淡出等效果。
第二类:Frame-by-Frame Animations
和电影类似,电影实际上是一系列照片的组合,一系列照片滚动,利用人们视觉残留的效果。24/s张照片,就可以认为是连续的
该类Animations可以创建一个Drawable(图片)序列,这些Drawable可以按照指定的时间间隙一个一个的显示。
Animations的使用方法,有两大类,一类是在代码中实现,一类是在XML里面实现。
private class AlphaButtonListener implements DialogInterface.OnClickListener { @Override public void onClick(DialogInterface dialog, int which) { //创建一个AnimationSet对象,这里布尔型的参数,直接设置为true就可以了 AnimationSet animationSet = new AnimationSet(true); //创建一个AlphaAnimation对象,这里1表示fromAlpha(不透明),0表示toAlpha(透明) AlphaAnimation alphaAnimation = new AlphaAnimation(1, 0); //设置动画执行的时间(单位:毫秒) alphaAnimation.setDuration(1000); //将AlphaAnimation对象添加到AnimationSet中 animationSet.addAnimation(alphaAnimation); //使用image的方法开始执行动画 imageView.startAnimation(animationSet); } }
private class RotateButtonListener implements DialogInterface.OnClickListener { @Override public void onClick(DialogInterface dialog, int which) { //RotateAnimation(float fromDegrees, float toDegrees, // int pivotXType, float pivotXValue, // int pivotYType, float pivotYValue) //fromDegrees 起始角度 0就是12点钟方向。 //toDegrees 终止角度 360是一样的。 //pivotXType 旋转的轴X的坐标类型 Animation.ABSOLUTE(绝对坐标), Animation.RELATIVE_TO_SELF(坐标相对于自身), or Animation.RELATIVE_TO_PARENT(坐标相对于父控件). RotateAnimation rotateAnimation = new RotateAnimation(0, 360, Animation.RELATIVE_TO_PARENT,1f, Animation.RELATIVE_TO_PARENT,0f); } }
后面4个参数就是定义旋转的圆心。
public void onClick(DialogInterface dialog, int which) { //8个参数 //public ScaleAnimation(float fromX, float toX, float fromY,float toY, // int pivotXType, float pivotXValue, // int pivotYType, float pivotYValue) { ScaleAnimation scaleAnimation = new ScaleAnimation( 1,0.1f,1,0.1f, /**横纵坐标变到以前的0.1*/ Animation.RELATIVE_TO_SELF,0.5f, /**设置缩放的旋转轴*/ Animation.RELATIVE_TO_SELF,0.8f); }
4)translate效果实现(移动效果)
private class TranslateButtonListener implements DialogInterface.OnClickListener { @Override public void onClick(DialogInterface dialog, int which) { // public TranslateAnimation( // int fromXType, float fromXValue, 设置X方向的起始位置 // int toXType, float toXValue, 设置X方向的终止位置 // int fromYType, float fromYValue, 设置Y方向的起始位置 // int toYType, float toYValue) 设置Y方向的终止位置 TranslateAnimation translateAnimation = new TranslateAnimation( Animation.RELATIVE_TO_SELF,0f, Animation.RELATIVE_TO_SELF,0.5f, Animation.RELATIVE_TO_SELF,0f, Animation.RELATIVE_TO_SELF,1f); } }
AnimationSet里面有很多个Animaition
animationSet.setDuration(1000); //设置动画执行的时间 animationSet.setFillAfter(true); //动画执行完毕后,停留在控件结束的状态 animationSet.setFillBefore(false); //动画执行完毕后,停留在控件开始的状态 animationSet.setStartOffset(2000); //设置动画执行之前的等待时间 animationSet.setRepeatCount(3); //设置动画的重复执行次数
Android--Animations的使用(一)--Tweened Animations
标签:
原文地址:http://www.cnblogs.com/zrui513/p/4810616.html