我要告诉可能会在这里结束的人:在我的应用程序中,我只是尝试使用相同的方法使用 AnimationDrawable 更改 ActionBar 按钮的图标,并且它可以工作。
我的 AnimationDrawable ic_action_recording_active
:
<animation-list xmlns:android="http://schemas.android.com/apk/res/android"
android:oneshot="false" >
<item android:drawable="@drawable/ic_action_recording_active0" android:duration="200" />
<item android:drawable="@drawable/ic_action_recording_active1" android:duration="200" />
<item android:drawable="@drawable/ic_action_recording_active2" android:duration="200" />
</animation-list>
我在按下图标后调用此方法(我在 中处理它们onOptionsItemSelected
):
public void changeMenuIcon(MenuItem item) {
if (isRecording) {
item.setIcon(R.drawable.ic_action_recording_active);
AnimationDrawable icon = (AnimationDrawable) item.getIcon();
icon.start();
} else {
item.setIcon(R.drawable.ic_action_recording);
}
}
编辑:我刚刚看到使用icon.start()
in 并onCreateOptionsMenu
没有真正开始动画......
我最终打电话changeMenuIcon
给onWindowFocusChanged