动画类型
Android的animation由四种类型组成
渐变透明度动画效果 XML:alpha JAVA:AlphaAnimation
<set xmlns:android="http://schemas.android.com/apk/res/android" >
<alpha
android:duration="3000"
android:fromAlpha="0.0"
android:toAlpha="1.0" />
<!-- 透明控制动画效果alpha
浮点型:
fromAlpha 属性为动画起始时的透明度
toAlpha 属性为动画结束时的透明度
0.0 表示完全透明
1.0 表示完全不透明
取值范围(0.0,1.0)
长整型:
duration 属性为动画持续时间 时间以毫秒为单位
-->
</set>
//XML
Animation animation = AnimationUtils.loadAnimation(this, R.anim.myanim);
btn_animation.setAnimation(animation);
//JAVA
AlphaAnimation alphaAnimation = new AlphaAnimation(0.0f, 1.0f);
alphaAnimation.setDuration(2000);
btn_animation.setAnimation(alphaAnimation);
渐变尺寸伸缩动画效果 XML:scale JAVA:ScaleAnimation
<scale android:interpolator="@android:anim/accelerate_decelerate_interpolator"
android:fromXScale="0.0"
android:toXScale="1.5"
android:fromYScale="0.0"
android:toYScale="1.5"
android:pivotX="50%"
android:pivotY="50%"
android:fillAfter="false"
android:duration="7000"/>
<!-- 尺寸伸缩动画效果 scale
属性:interpolator 指定一个动画插入器
accelerate_decelerate_interpolator 加速-减速 动画插入器
accelerate_interpolator 加速-动画插入器
decelerate_interpolator 减速-动画插入器
浮点型值:
formXScale 属性为动画开始时 X坐标上的伸缩尺寸
toXScale 属性为动画结束时 X坐标上的伸缩尺寸
fromYScale 属性为动画开始时 Y坐标上的伸缩尺寸
toYScale 属性为动画结束时 Y坐标上的伸缩尺寸
0.0表示收缩到没有 1.0表示正常无收缩
值大于1.0表示放大 值小于1.0表示收缩
pivotX 属性为动画相对于物件X坐标的开始位置
pivotY 属性为动画相对于物件Y坐标的开始位置
取值范围0%-100% 50%为物件的X或Y方向坐标上的中点位置
长整型值:
duration 属性为动画持续时间 毫秒单位
布尔型值:
fillAfter 属性 当设置true,该动画转化在动画结束后被应用
-->
//JAVA Scale
//参数1:fromX为动画起始时 X坐标上的伸缩尺寸
//参数2:toX为动画结束时 X坐标上的伸缩尺寸
//参数3:fromY为动画起始时 Y坐标上的伸缩尺寸
//参数4:toY为动画结束时 Y坐标上的伸缩尺寸
//参数5:pivotXType为动画在X轴相对物件的位置类型
//参数6:pivotXValue为动画相对于物件的X坐标的开始位置
//参数7:pivotYTYpe为动画在Y轴相当于物件位置类型
//参数8:pivotYValue为动画相对于物件的Y坐标的开始位置
ScaleAnimation scaleAnimation = new ScaleAnimation(0.0f, 1.4f, 0.0f, 1.4f, Animation.RELATIVE_TO_SELF, 0.5f, Animation.RELATIVE_TO_SELF, 0.5f);
scaleAnimation.setDuration(3000);
btn_animation.setAnimation(scaleAnimation);
画面转换位置移动动画效果 XML: translate JAVA:TranslateAnimation
<translate
android:duration="2000"
android:fromXDelta="30"
android:fromYDelta="30"
android:toXDelta="-100"
android:toYDelta="500" />
<!-- translate 位置转移动画效果
整型值:
fromXDelta 动画开始时 X坐标
toXDelta 动画结束时 X坐标
fromYDelta 动画开始时 Y坐标
toYDelta 动画结束时 Y坐标
注:没有指定fromXType toXType fromYType toYType 默认以自己为相对参照物
长整型值:
duration 动画持续时间 毫秒单位
-->
TranslateAnimation translateAnimation = new TranslateAnimation(30, -50, 30, 200);
translateAnimation.setDuration(2000);
btn_animation.setAnimation(translateAnimation);
旋转动画效果 XML: rotate JAVA:TranslateAnimation
<rotate
android:duration="1000"
android:fromDegrees="0"
android:interpolator="@android:anim/accelerate_decelerate_interpolator"
android:pivotX="50%"
android:pivotY="50%"
android:toDegrees="+350" >
</rotate>
<!-- rotate 旋转动画效果
属性:interpolator 指定一个动画插入器
accelerate_decelerate_interpolator 加速-减速 动画插入器
accelerate_interpolator 加速 动画插入器
decelerate_interpolator 减速 动画插入器
浮点数型值:
fromDegres 动画开始时物件角度
toDegrees 动画结束时物件旋转的角度 可以大于360度
注:当角度为负数-逆时针旋转
当角度为正数-顺时针选装
pivotX 相对于物件X坐标的开始位置
pivotY 相对于物件Y坐标的开始位置
注:取值范围0%-100%
长整型:
duration 动画持续时间 毫秒单位
-->
RotateAnimation rotateAnimation = new RotateAnimation(0, 600,Animation.RELATIVE_TO_SELF, 0.5f,Animation.RELATIVE_TO_SELF, 0.5f);
rotateAnimation.setDuration(2000);
btn_animation.setAnimation(rotateAnimation);
其他:
动画运动完毕后,停止在动画完成的位置
动画结束后,清除动画
动画结束后,改变View的偏移量