程序员开发实例大全宝库

网站首页 > 编程文章 正文

Android 属性动画资源(android属性动画平移)

zazugpt 2024-10-22 18:36:28 编程文章 28 ℃ 0 评论

动画资源可以定义以下两种动画类型

  1. 属性动画
    通过使用 Animator 在设定的时段内修改对象的属性值来创建动画。
  2. 视图动画
    使用视图动画框架可以创建两种类型的动画:
    • 补间动画:通过使用 Animation 对单张图片执行一系列转换来创建动画。
    • 帧动画:通过使用 AnimationDrawable 按顺序显示一系列图片来创建动画。

属性动画

在 XML 中定义的动画,用于在设定的一段时间内修改目标对象的属性,例如背景颜色或 alpha 值。

文件位置

res/animator/filename.xml

文件名用作资源 ID。

编译后的资源数据类型:

指向 ValueAnimatorObjectAnimatorAnimatorSet 的资源指针

资源引用:

在 Java 或 Kotlin 代码中:R.animator.filename
在 XML 中:@[package:]animator/filename

语法

<set
  android:ordering=["together" | "sequentially"]>

    <objectAnimator
        android:propertyName="string"
        android:duration="int"
        android:valueFrom="float | int | color"
        android:valueTo="float | int | color"
        android:startOffset="int"
        android:repeatCount="int"
        android:repeatMode=["restart" | "reverse"]
        android:valueType=["intType" | "floatType"]/>

    <animator
        android:duration="int"
        android:valueFrom="float | int | color"
        android:valueTo="float | int | color"
        android:startOffset="int"
        android:repeatCount="int"
        android:repeatMode=["restart" | "reverse"]
        android:valueType=["intType" | "floatType"]/>

    <set>
        ...
    </set>
</set>

该文件必须具有一个根元素,可以是 <set><objectAnimator><valueAnimator>。您可以将动画元素(包括其他 <set> 元素)组合到 <set> 元素中。

元素介绍

<set>

容纳其他动画元素(<objectAnimator><valueAnimator> 或其他 <set> 元素)的容器。代表 AnimatorSet

您可以指定嵌套的 <set> 标记,进一步对动画进行分组。每个 <set> 都可以定义自己的 ordering 属性。

属性:

      1. android:ordering
        指定此集合中动画的播放顺序。

说明

sequentially

依序播放此集合中的动画。

together(默认)

同时播放此集合中的动画。

<objectAnimator>

在特定的一段时间内为对象的特定属性创建动画。代表 ObjectAnimator

属性:

      1. android:propertyName
        字符串。
        必需。要添加动画效果的对象的属性,通过其名称引用。例如,您可以为 View 对象指定 "alpha""backgroundColor"。但是,objectAnimator 元素不包含 target 属性,因此您无法在 XML 声明中设置要添加动画效果的对象。您必须通过调用 loadAnimator() 来膨胀您的动画 XML 资源,然后调用 setTarget() 来设置包含此属性的目标对象。
      2. android:valueTo
        浮点数、整数或颜色。
        必需。动画属性的结束值。颜色以六位十六进制数字表示,例如 #333333。
      3. android:valueFrom
        浮点数、整数或颜色。动画属性的起始值。如果未指定,则动画将从属性的
        get 方法获得的值开始。颜色以六位十六进制数字表示,例如 #333333。
      4. android:duration
        整数。动画的时间,以毫秒为单位。默认为 300 毫秒。
      5. android:startOffset
        整数。调用 start() 后动画延迟的毫秒数。
      6. android:repeatCount
        整数。动画的重复次数。设为
        "-1" 表示无限次重复,也可设为正整数。例如,值 "1" 表示动画在初次播放后重复播放一次,因此动画总共播放两次。默认值为 "0",表示不重复。
      7. android:repeatMode
        整数。动画播放到结尾处的行为。
        android:repeatCount 必须设置为正整数或 "-1",该属性才有效。设置为 "reverse" 可让动画在每次迭代时反向播放,设置为 "restart" 则可让动画每次从头开始循环播放。
      8. android:valueType
        关键字。如果值为颜色,则不要指定此属性。动画框架会自动处理颜色值。
        intType:指定动画值为整数。
        floatType(默认):指定动画值为浮点数。

<animator>

在指定的时间段内执行动画。 代表 ValueAnimator

属性:

      1. android:valueTo
        浮点数、整数或颜色。必需。动画的结束值。颜色以六位十六进制数字表示,例如 #333333。
      2. android:valueFrom
        浮点数、整数或颜色。必需。动画的起始值。颜色以六位十六进制数字表示,例如 #333333。
      3. android:duration
        整数。动画的时间,以毫秒为单位。默认为 300 毫秒。
      4. android:startOffset
        整数。调用 start() 后动画延迟的毫秒数。
      5. android:repeatCount
        整数。动画的重复次数。设为 "-1" 表示无限次重复,也可设为正整数。例如,值 "1" 表示动画在初次播放后重复播放一次,因此动画总共播放两次。默认值为 "0",表示不重复。
      6. android:repeatMode
        整数。动画播放到结尾处的行为。android:repeatCount 必须设置为正整数或 "-1",该属性才有效。设置为 "reverse" 可让动画在每次迭代时反向播放,设置为 "restart" 则可让动画每次从头开始循环播放。
      7. android:valueType
        关键字。如果值为颜色,则不要指定此属性。动画框架会自动处理颜色值。
        intType:指定动画值为整数。
        floatType(默认):指定动画值为浮点数。

若要运行此动画,您必须将代码中的 XML 资源膨胀为 AnimatorSet 对象,然后在开始运行动画集之前为所有动画设置目标对象。为方便起见,调用 setTarget() 即可设置一个用于 AnimatorSet 的所有子项的目标对象。以下代码展示了如何执行此操作:

在 Java 代码中加载和启动动画代码示例

// 在 Java 代码中加载属性动画
Animator animator = AnimatorInflater.loadAnimator(this, R.anim.translate_animation);

// 设置动画作用目标(这里假设你有一个名为 targetView 的视图)
animator.setTarget(targetView);

// 启动动画
animator.start();

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表