天天看点

Android 简单旋转、平移、渐变、伸缩动画

简单总结旋转、平移、渐变、伸缩动画

1.通用

alphaAnimation.setFillAfter(true);

设置动画结束后的状态,true为保留最后动画状态
2.监听动画的开始、结束状态
animation.setAnimationListener(new Animation.AnimationListener() {
            @Override
            public void onAnimationStart(Animation animation) {
                
            }

            @Override
            public void onAnimationEnd(Animation animation) {

            }

            @Override
            public void onAnimationRepeat(Animation animation) {

            }
        });	 
           
3.动画view常用的位置坐标信息,view的更多信息,请看。。。未写,带总结
Android 简单旋转、平移、渐变、伸缩动画
Android 简单旋转、平移、渐变、伸缩动画

TranslateAnimation动画

TranslateAnimation(float fromXDelta, float toXDelta, float fromYDelta, float toYDelta) 来定义动画

参数说明

float fromXDelta 动画开始的点离当前View X坐标上的差值

float toXDelta 动画结束的点离当前View X坐标上的差值

float fromYDelta 动画开始的点离当前View Y坐标上的差值

float toYDelta 动画开始的点离当前View Y坐标上的差值

常用方法

animation.setDuration(long durationMillis);//设置动画持续时间

animation.setRepeatCount(int i);//设置重复次数

animation.setRepeatMode(Animation.REVERSE);//设置反方向执行

代码
TranslateAnimation translateAnimation = new TranslateAnimation(0, 400, 0, 400);
    translateAnimation.setDuration(5000);
    translateAnimation.setFillAfter(true);
    launcherIv.startAnimation(translateAnimation);
           
Android 简单旋转、平移、渐变、伸缩动画

ScaleAnimation 动画

ScaleAnimation(float fromX, float toX, float fromY, float toY,int pivotXType, float pivotXValue, int pivotYType, float pivotYValue)

参数说明

float fromX 动画起始时 X坐标上的伸缩尺寸

float toX 动画结束时 X坐标上的伸缩尺寸

float fromY 动画起始时Y坐标上的伸缩尺寸

float toY 动画结束时Y坐标上的伸缩尺寸

int pivotXType 动画在X轴相对于物件位置类型

float pivotXValue 动画相对于物件的X坐标的开始位置

int pivotYType 动画在Y轴相对于物件位置类型

float pivotYValue 动画相对于物件的Y坐标的开始位置

代码
ScaleAnimation scaleAnimation = new ScaleAnimation(1, 0, 1, 0, Animation.ABSOLUTE, 400, Animation.ABSOLUTE, -10);
  scaleAnimation.setDuration(5000);
  scaleAnimation.setFillAfter(true);
  launcherIv.startAnimation(scaleAnimation);
           
Android 简单旋转、平移、渐变、伸缩动画

RotateAnimation 动画

RotateAnimation (float fromDegrees, float toDegrees, int pivotXType, float pivotXValue, int pivotYType, float pivotYValue)

参数说明:

float fromDegrees:旋转的开始角度。

float toDegrees:旋转的结束角度。

int pivotXType:X轴的伸缩模式,可以取值为ABSOLUTE、RELATIVE_TO_SELF、RELATIVE_TO_PARENT。

float pivotXValue:X坐标的伸缩值。

int pivotYType:Y轴的伸缩模式,可以取值为ABSOLUTE、RELATIVE_TO_SELF、RELATIVE_TO_PARENT。

float pivotYValue:Y坐标的伸缩值。

代码
RotateAnimation rotateAnimation = new RotateAnimation(0, -180, Animation.RELATIVE_TO_SELF, 0.5f, Animation.RELATIVE_TO_SELF, 0.5f);
    rotateAnimation.setDuration(2000);
    rotateAnimation.setFillAfter(true);
    launcherIv.startAnimation(rotateAnimation);
           
Android 简单旋转、平移、渐变、伸缩动画

AlphaAnimation 动画

AlphaAnimation(float fromAlpha, float toAlpha)

代码:
AlphaAnimation alphaAnimation = new AlphaAnimation(1f, 0.2f);
 alphaAnimation.setDuration(1000);
 alphaAnimation.setFillAfter(true);
 launcherIv.startAnimation(alphaAnimation);