在XML中定义动画有四种方式,分别为:
<alpha/>
<scale/>
<translate/>
<rotate/>
下面具体来介绍每个标签里面的属性
<alpha> 控制动画的透明度
fromAlpha: 动画起始时的透明度
toAlpha:动画结束时的透明度
说明:0.0 表示完全透明,1.0表示完全不透明(以上值取0.0-1.0之间的float数据类型的数字)
duration:动画持续的时间
eg:
<?xml version="1.0" encoding="utf-8"?> <set xmlns:android="http://schemas.android.com/apk/res/android" > <alpha android:fromAlpha="0.1" android:toAlpha="1.0" android:duration="3000"/> </set>
<scale> 尺寸伸缩动画效果
interpolator:指定一个动画的插入器
有三种动画插入器:accelerate_decelerate_interpolator 加速-减速 动画插入器
accelerate_interpolator 加速-动画插入器
decelerate_interpolator 减速- 动画插入器
其他的属于特定的动画效果
fromXScale:动画起始时 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:动画持续多长时间(毫秒ms)
fillAfter:当设置为true时,该动画转化在动画结束后被应用
eg:
<?xml version="1.0" encoding="utf-8"?> <set xmlns:android="http://schemas.android.com/apk/res/android"> <scale android:interpolator="@android:anim/accelerate_decelerate_interpolator" android:fromXScale="0.0" android:toXScale="1.4" android:fromYScale="0.0" android:toYScale="1.4" android:pivotX="50%" android:pivotY="50%" android:fillAfter="false" android:duration="700" /> </set>
<translate> 位置转移动画效果
fromXDelta:动画起始时 X坐标上的位置
toXDelta:动画结束时 X坐标上的位置
fromYDelta:动画起始时 Y坐标上的位置
toYDelta:动画结束时 Y坐标上的位置
说明:没有指定fromXType, toXType, fromYType, toYType的时候,默认是以自己为相对参照物
duration:动画持续多长时间(毫秒ms)
eg:
<?xml version="1.0" encoding="utf-8"?> <set xmlns:android="http://schemas.android.com/apk/res/android"> <translate android:fromXDelta="30" android:toXDelta="-80" android:fromYDelta="30" android:toYDelta="300" android:duration="2000" /> </set>
<rotate>旋转动画效果
interpolator:指定一个动画的插入器
有三种动画插入器:accelerate_decelerate_interpolator 加速-减速 动画插入器
accelerate_interpolator 加速-动画插入器
decelerate_interpolator 减速- 动画插入器
其他的属于特定的动画效果
fromDegrees:动画起始时物件的角度
toDegrees:动画结束时物件旋转的角度 可以大于360度
说明:当角度为负数——表示逆时针旋转
当角度为正数——表示顺时针旋转
(负数from——to正数:顺时针旋转)
(负数from——to负数:逆时针旋转)
(正数from——to正数:顺时针旋转)
(正数from——to负数:逆时针旋转)
pivotX:动画相对于物件的X坐标的开始位置
pivotY:动画相对于物件的Y坐标的开始位置
说明:以上两个属性值 从0%-100%中取值,50%为物件的X或Y方向坐标上的中点位置
duration:动画持续多长时间(毫秒ms)
eg:
<?xml version="1.0" encoding="utf-8"?> <set xmlns:android="http://schemas.android.com/apk/res/android"> <rotate android:interpolator="@android:anim/accelerate_decelerate_interpolator" android:fromDegrees="0" android:toDegrees="+350" android:pivotX="50%" android:pivotY="50%" android:duration="3000" /> </set>
Java调用:
Animation animation=AnimationUtils.loadAnimation(HelloActivity.this,R.anim.buttonain); findViewById(R.id.listView).startAnimation(animation);