View动画常用属性介绍

85 阅读3分钟

在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:定义动画的插值器,控制动画的速率变化。常见的插值器有linearacceleratedecelerateaccelerateDecelerate等。

示例

<?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:durationandroid:repeatCountandroid:repeatModeandroid:fillBeforeandroid:fillAfterandroid: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:pivotXandroid:pivotYandroid:durationandroid:repeatCountandroid:repeatModeandroid:fillBeforeandroid:fillAfterandroid: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:durationandroid:repeatCountandroid:repeatModeandroid:fillBeforeandroid:fillAfterandroid: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:durationandroid:repeatCountandroid:repeatModeandroid:fillBeforeandroid:fillAfterandroid: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动画中常用的属性及其示例。理解和掌握这些属性,可以帮助开发者灵活地实现各种动画效果,提升应用的用户体验。