动画列表(animationDrawable)自动启动

时间:2013-01-08 17:17:12

标签: android android-animation

在不使用animation-list从XML进行充气后,是否可以将AnimationDrawable.start() drawable设置为自动启动?

我的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>

3 个答案:

答案 0 :(得分:7)

自动启动:

<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()。希望这可以帮到你。

答案 1 :(得分:0)

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

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

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

答案 2 :(得分:0)

您可以将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" />