Android Animation

来源:互联网 发布:oracle导入数据 编辑:程序博客网 时间:2024/04/30 03:48

本文利用java定义集中动画

AlphaAnimation  渐变透明度动画效果

ScaleAnimation  渐变尺寸伸缩动画效果

TranslateAnimation 画面转换位置移动动画效果 

RotateAnimation画面转移旋转动画效果

1 AlphaAnimation

/** * Constructor to use when building an AlphaAnimation from code *  * @param fromAlpha Starting alpha value for the animation, where 1.0 means *        fully opaque and 0.0 means fully transparent. * @param toAlpha Ending alpha value for the animation. */public AlphaAnimation(float fromAlpha, float toAlpha) {    }
//创建一个AlphaAnimation对象,参数从完全不透明,到完全透明alphaAnimation=new AlphaAnimation(1.0f,0.0f);

2 ScaleAnimation

/** * Constructor to use when building a ScaleAnimation from code *  * @param fromX Horizontal scaling factor to apply at the start of the *        animation * @param toX Horizontal scaling factor to apply at the end of the animation * @param fromY Vertical scaling factor to apply at the start of the *        animation * @param toY Vertical scaling factor to apply at the end of the animation * @param pivotXType Specifies how pivotXValue should be interpreted. One of *        Animation.ABSOLUTE, Animation.RELATIVE_TO_SELF, or *        Animation.RELATIVE_TO_PARENT. * @param pivotXValue The X coordinate of the point about which the object *        is being scaled, specified as an absolute number where 0 is the *        left edge. (This point remains fixed while the object changes *        size.) This value can either be an absolute number if pivotXType *        is ABSOLUTE, or a percentage (where 1.0 is 100%) otherwise. * @param pivotYType Specifies how pivotYValue should be interpreted. One of *        Animation.ABSOLUTE, Animation.RELATIVE_TO_SELF, or *        Animation.RELATIVE_TO_PARENT. * @param pivotYValue The Y coordinate of the point about which the object *        is being scaled, specified as an absolute number where 0 is the *        top edge. (This point remains fixed while the object changes *        size.) This value can either be an absolute number if pivotYType *        is ABSOLUTE, or a percentage (where 1.0 is 100%) otherwise. */public ScaleAnimation(float fromX, float toX, float fromY, float toY,        int pivotXType, float pivotXValue, int pivotYType, float pivotYValue) {  }
public ScaleAnimation(float fromX, float toX, float fromY, float toY,        float pivotX, float pivotY) {    }
public ScaleAnimation(float fromX, float toX, float fromY, float toY) {    }
//第一个参数fromX为动画起始时 X坐标上的伸缩尺寸//第二个参数toX为动画结束时 X坐标上的伸缩尺寸//第三个参数fromY为动画起始时Y坐标上的伸缩尺寸//第四个参数toY为动画结束时Y坐标上的伸缩尺寸/*说明:    以上四种属性值    0.0表示收缩到没有    1.0表示正常无伸缩    值小于1.0表示收缩    值大于1.0表示放大*///第五个参数pivotXType为动画在X轴相对于物件位置类型//第六个参数pivotXValue为动画相对于物件的X坐标的开始位置
//第七个参数pivotXType为动画在Y轴相对于物件位置类型
//第八个参数pivotYValue为动画相对于物件的Y坐标的开始位置
如果没有5、7 个参数默认就是Animation.RELATIVE_TO_SELF
scaleAnimation=new ScaleAnimation(0.0f, 1.4f, 0.0f, 1.4f,        Animation.RELATIVE_TO_SELF, 0.5f, Animation.RELATIVE_TO_SELF, 0.5f);
3 TranslateAnimation
/** * Constructor to use when building a TranslateAnimation from code *  * @param fromXType Specifies how fromXValue should be interpreted. One of *        Animation.ABSOLUTE, Animation.RELATIVE_TO_SELF, or *        Animation.RELATIVE_TO_PARENT. * @param fromXValue Change in X coordinate to apply at the start of the *        animation. This value can either be an absolute number if fromXType *        is ABSOLUTE, or a percentage (where 1.0 is 100%) otherwise. * @param toXType Specifies how toXValue should be interpreted. One of *        Animation.ABSOLUTE, Animation.RELATIVE_TO_SELF, or *        Animation.RELATIVE_TO_PARENT. * @param toXValue Change in X coordinate to apply at the end of the *        animation. This value can either be an absolute number if toXType *        is ABSOLUTE, or a percentage (where 1.0 is 100%) otherwise. * @param fromYType Specifies how fromYValue should be interpreted. One of *        Animation.ABSOLUTE, Animation.RELATIVE_TO_SELF, or *        Animation.RELATIVE_TO_PARENT. * @param fromYValue Change in Y coordinate to apply at the start of the *        animation. This value can either be an absolute number if fromYType *        is ABSOLUTE, or a percentage (where 1.0 is 100%) otherwise. * @param toYType Specifies how toYValue should be interpreted. One of *        Animation.ABSOLUTE, Animation.RELATIVE_TO_SELF, or *        Animation.RELATIVE_TO_PARENT. * @param toYValue Change in Y coordinate to apply at the end of the *        animation. This value can either be an absolute number if toYType *        is ABSOLUTE, or a percentage (where 1.0 is 100%) otherwise. */public TranslateAnimation(int fromXType, float fromXValue, int toXType, float toXValue,        int fromYType, float fromYValue, int toYType, float toYValue) {}
public TranslateAnimation(float fromXDelta, float toXDelta, float fromYDelta, float toYDelta) {    }
//参数1~2:x轴的开始位置//参数3~4:y轴的开始位置//参数5~6:x轴的结束位置//参数7~8:x轴的结束位置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);
4 RotateAnimation
/** * Constructor to use when building a RotateAnimation from code *  * @param fromDegrees Rotation offset to apply at the start of the *        animation. *  * @param toDegrees Rotation offset to apply at the end of the animation. *  * @param pivotXType Specifies how pivotXValue should be interpreted. One of *        Animation.ABSOLUTE, Animation.RELATIVE_TO_SELF, or *        Animation.RELATIVE_TO_PARENT. * @param pivotXValue The X coordinate of the point about which the object *        is being rotated, specified as an absolute number where 0 is the *        left edge. This value can either be an absolute number if *        pivotXType is ABSOLUTE, or a percentage (where 1.0 is 100%) *        otherwise. * @param pivotYType Specifies how pivotYValue should be interpreted. One of *        Animation.ABSOLUTE, Animation.RELATIVE_TO_SELF, or *        Animation.RELATIVE_TO_PARENT. * @param pivotYValue The Y coordinate of the point about which the object *        is being rotated, specified as an absolute number where 0 is the *        top edge. This value can either be an absolute number if *        pivotYType is ABSOLUTE, or a percentage (where 1.0 is 100%) *        otherwise. */public RotateAnimation(float fromDegrees, float toDegrees, int pivotXType, float pivotXValue,        int pivotYType, float pivotYValue) {   }
public RotateAnimation(float fromDegrees, float toDegrees, float pivotX, float pivotY) {    }
public RotateAnimation(float fromDegrees, float toDegrees) {   }
少几个参数的都是默认相对于自身的
//参数1:从哪个旋转角度开始//参数2:转到什么角度//后面的4个参数用于设置围绕着旋转的圆的圆心在哪里//参数3:确定x轴坐标的类型,有ABSOLUT绝对坐标、RELATIVE_TO_SELF相对于自身坐标、RELATIVE_TO_PARENT相对于父控件的坐标//参数4:x轴的值,0.5f表明是以自身这个控件的一半长度为x轴//参数5:确定y轴坐标的类型//参数6:y轴的值,0.5f表明是以自身这个控件的一半长度为x轴rotateAnimation = new RotateAnimation(0, 360,        Animation.RELATIVE_TO_SELF, 0.5f,        Animation.RELATIVE_TO_SELF, 0.5f);
5 AnimationSet
//true表示使用Animation的interpolator,false则是使用自己的
animationSet = new AnimationSet(true);
使用AnimationSet可以添加多种动画一次性执行
animationSet.addAnimation(scaleAnimation);
view.startAnimation(animationSet);
6 动画常用方法
    1、setDuration(long durationMills)   设置动画持续时间(单位:毫秒)  2、setFillAfter(Boolean fillAfter)    如果fillAfter的值为true,则动画执行后,控件将停留在执行结束的状态  3、setFillBefore(Boolean fillBefore)  如果fillBefore的值为true,则动画执行后,控件将回到动画执行之前的状态  4、setStartOffSet(long startOffSet)   设置动画执行之前的等待时间  5、setRepeatCount(int repeatCount)   设置动画重复执行的次数
7 动画的速度 Interpolator可以定义动画播放的速度

Interpolator定义了动画变化的速率,在Animations框架当中定义了一下几种Interpolator

AccelerateDecelerateInterpolator:在动画开始与结束的地方速率改变比较慢,在中间的时候速率快。

AccelerateInterpolator:在动画开始的地方速率改变比较慢,然后开始加速

CycleInterpolator:动画循环播放特定的次数,速率改变沿着正弦曲线

DecelerateInterpolator:在动画开始的地方速率改变比较慢,然后开始减速

LinearInterpolator:动画以均匀的速率改变

scaleAnimation.setInterpolator(new AccelerateInterpolator());










0 0
原创粉丝点击