ここにたどり着く可能性のある人にこれを伝えています。私のアプリでは、同じ方法で 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()
してonCreateOptionsMenu
も実際にはアニメーションが開始されないことがわかりました...
私は最終的に電話をかけchangeMenuIcon
ましたonWindowFocusChanged