简单总结旋转、平移、渐变、伸缩动画
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的更多信息,请看。。。未写,带总结
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);
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);
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);
AlphaAnimation 动画
AlphaAnimation(float fromAlpha, float toAlpha)
代码:
AlphaAnimation alphaAnimation = new AlphaAnimation(1f, 0.2f);
alphaAnimation.setDuration(1000);
alphaAnimation.setFillAfter(true);
launcherIv.startAnimation(alphaAnimation);