在不使用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>
答案 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
不会自动启动因此,我认为我们应该始终使用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" />