在Android开发中,View动画(View Animation)有许多常用属性,用于定义动画的各种行为和效果。以下是View动画常用属性的详细介绍:
一、透明度动画(Alpha Animation)
常用属性
android:fromAlpha:动画开始时的透明度,取值范围为0.0到1.0。android:toAlpha:动画结束时的透明度,取值范围为0.0到1.0。android:duration:动画持续时间,以毫秒为单位。android:repeatCount:动画重复次数,可以设置为infinite表示无限重复。android:repeatMode:动画重复模式,取值有restart(重新开始)和reverse(反向播放)。android:fillBefore:如果设置为true,动画结束后,View将保持动画开始前的状态。android:fillAfter:如果设置为true,动画结束后,View将保持动画结束后的状态。android:interpolator:定义动画的插值器,控制动画的速率变化。常见的插值器有linear、accelerate、decelerate、accelerateDecelerate等。
示例
<?xml version="1.0" encoding="utf-8"?>
<alpha xmlns:android="http://schemas.android.com/apk/res/android"
android:fromAlpha="0.0"
android:toAlpha="1.0"
android:duration="1000"
android:repeatCount="infinite"
android:repeatMode="reverse" />
二、旋转动画(Rotate Animation)
常用属性
android:fromDegrees:动画开始时的旋转角度。android:toDegrees:动画结束时的旋转角度。android:pivotX:旋转中心点的X坐标,可以使用相对值(如50%)或绝对值。android:pivotY:旋转中心点的Y坐标,可以使用相对值(如50%)或绝对值。android:duration、android:repeatCount、android:repeatMode、android:fillBefore、android:fillAfter、android:interpolator:同Alpha Animation。
示例
<?xml version="1.0" encoding="utf-8"?>
<rotate xmlns:android="http://schemas.android.com/apk/res/android"
android:fromDegrees="0"
android:toDegrees="360"
android:pivotX="50%"
android:pivotY="50%"
android:duration="1000"
android:repeatCount="infinite"
android:repeatMode="restart" />
三、缩放动画(Scale Animation)
常用属性
android:fromXScale:动画开始时的X轴缩放比例。android:toXScale:动画结束时的X轴缩放比例。android:fromYScale:动画开始时的Y轴缩放比例。android:toYScale:动画结束时的Y轴缩放比例。android:pivotX、android:pivotY、android:duration、android:repeatCount、android:repeatMode、android:fillBefore、android:fillAfter、android:interpolator:同Rotate Animation。
示例
<?xml version="1.0" encoding="utf-8"?>
<scale xmlns:android="http://schemas.android.com/apk/res/android"
android:fromXScale="1.0"
android:toXScale="2.0"
android:fromYScale="1.0"
android:toYScale="2.0"
android:pivotX="50%"
android:pivotY="50%"
android:duration="1000"
android:fillAfter="true" />
四、位移动画(Translate Animation)
常用属性
android:fromXDelta:动画开始时的X轴位置变化,相对值或绝对值。android:toXDelta:动画结束时的X轴位置变化,相对值或绝对值。android:fromYDelta:动画开始时的Y轴位置变化,相对值或绝对值。android:toYDelta:动画结束时的Y轴位置变化,相对值或绝对值。android:duration、android:repeatCount、android:repeatMode、android:fillBefore、android:fillAfter、android:interpolator:同Alpha Animation。
示例
<?xml version="1.0" encoding="utf-8"?>
<translate xmlns:android="http://schemas.android.com/apk/res/android"
android:fromXDelta="0%"
android:toXDelta="100%"
android:fromYDelta="0%"
android:toYDelta="0%"
android:duration="1000"
android:fillAfter="true" />
五、组合动画(AnimationSet)
组合动画允许将多个动画组合在一起同时或顺序播放。
常用属性
android:shareInterpolator:是否共享插值器,默认为true。android:duration、android:repeatCount、android:repeatMode、android:fillBefore、android:fillAfter、android:interpolator:同Alpha Animation。
示例
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
android:shareInterpolator="true">
<translate
android:fromXDelta="0%"
android:toXDelta="75%"
android:duration="1000" />
<alpha
android:fromAlpha="0.0"
android:toAlpha="1.0"
android:duration="1000" />
</set>
以上是View动画中常用的属性及其示例。理解和掌握这些属性,可以帮助开发者灵活地实现各种动画效果,提升应用的用户体验。