我有两个可旋转的drawable在一个layer-list
里,我想将它们作为一个drawableleft
动画显示在按钮上。我已经成功显示了drawable,但没有动画。
这是我的xml中的drawable布局(button_progress_bar_small.xml
):
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item>
<rotate
android:drawable="@drawable/ic_spinner_small_outer"
android:pivotX="50%"
android:pivotY="50%"
android:fromDegrees="0"
android:toDegrees="1080" />
</item>
<item>
<rotate
android:drawable="@drawable/ic_spinner_small_inner"
android:pivotX="50%"
android:pivotY="50%"
android:fromDegrees="720"
android:toDegrees="0" />
</item>
这是我正在运行的代码:
button.setCompoundDrawablesWithIntrinsicBounds(R.drawable.button_progress_bar_small, 0, 0, 0);
LayerDrawable progressAnimationLeft = (LayerDrawable) button.getCompoundDrawables()[0];
((RotateDrawable) progressAnimationLeft.getDrawable(0)).setLevel(500);
((RotateDrawable) progressAnimationLeft.getDrawable(1)).setLevel(500);
我并不确定触发动画启动的条件,也不确定是否需要在每个 RotateDrawable
上执行某些操作(与在 LayerDrawable
上执行一次操作相反),以便实现该目的。