10

是否可以animation-list在不使用 XML 膨胀后将 drawable 设置为自动启动AnimationDrawable.start()

我的animation-list

<?xml version="1.0" encoding="utf-8"?>
<animation-list xmlns:android="http://schemas.android.com/apk/res/android" android:oneshot="false">
    <item android:drawable="@drawable/download_light" android:duration="200" />
    <item android:drawable="@drawable/download20" android:duration="200" />
    <item android:drawable="@drawable/download40" android:duration="200" />
    <item android:drawable="@drawable/download60" android:duration="200" />
    <item android:drawable="@drawable/download80" android:duration="200" />
    <item android:drawable="@drawable/download_on" android:duration="300" />
</animation-list>
4

3 回答 3

6

自动开启:

<ImageView
  android:layout_width="wrap_content"
  android:layout_height="wrap_content"
  android:src="@drawable/wave"
  android:layout_centerHorizontal="true"
  />

不自动启动:

<ImageView
  android:layout_width="wrap_content"
  android:layout_height="wrap_content"
  android:background="@drawable/wave"
  android:layout_centerHorizontal="true"
  />

这意味着当您将动画列表drawble设置为背景时,它不会自动启动,直到您调用AnimationDrawable.start(). 希望这可以帮到你。

于 2014-08-18T10:20:51.957 回答
1

在一些具有不同 API 的设备上测试后,我发现:
使用AnimationDrawable.start()

  • 在几乎设备animation-list 中不会自动启动
  • 在少数设备(几乎是设备 4.4)中会自动启动

因此,我认为我们应该始终使用AnimationDrawable.start()andAnimationDrawable.stop()作为开始/停止动画

于 2018-03-01T03:06:31.787 回答
1

可以将AnimationDrawable设置为ProgressBar android:indeterminateDrawable,当ProgressBar可见时AnimationDrawable会自动启动

    <ProgressBar
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_gravity="center_horizontal"
        android:minWidth="1dp"
        android:minHeight="1dp"
        android:maxWidth="10000dp"
        android:maxHeight="10000dp"
        android:indeterminate="true"
        android:indeterminateBehavior="repeat"
        android:indeterminateDrawable="@drawable/indeterminate_progess_animation_drawable" />
于 2020-05-14T08:17:25.063 回答