0

ブール値を視覚化するメニュー項目をActionBarに配置したいと思います。このブール値がtrueの場合、アイコンはループ内の一連の2つの画像のアニメーションを開始する必要があります。私は次のことをしました:

menu.xmlファイルに項目を追加しました:

  <item
     android:id='@+id/myAnimation'
     android:icon='@drawable/pic1'
     android:showAsAction='ifRoom'>
  </item>

アニメーションリストを作成しました:

<?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/pic1'
        android:duration='100' />
    <item
      android:drawable='drawable/pic2'
      android:duration='100' />
</animation-list>

この方法onCreateOptionsMenuでは、このメニュー項目を変数に割り当てます

myMenuItem = menu.findItem(R.id.myAnimation);

今、私はメニュー項目にアニメーション化するように指示するたびに実行されるアニメーションを追加したいと思っていました。しかし、私は近づくことさえできませんでした。

  • これも可能ですか?
  • どうやってやるの?

ありがとう!どんな助けでも大歓迎です!

編集:アプリは8からのAPIをサポートする必要があります

4

2 に答える 2

2

私は((AnimationDrawable) item.getIcon()).start();これonCreateOptionsMenu(Menu menu) がうまくいきませんでした。次に、UI スレッドで実行する必要があるのではないかと考えたところ、次のように機能しました。

someView.postDelayed(new Runnable() {
        @Override
        public void run() {
            ((AnimationDrawable) item.getIcon()).start();
        }
    }, 1000);
于 2015-05-11T10:53:19.950 に答える