1

アクションバーの右端に1つの画像を表示したい。いくつかのコードチェックに応じて、このイメージを実行時に設定したいと思います。誰かが私にそれについて行く方法を教えてもらえますか?

ありがとう

4

2 に答える 2

2

これを使って。このコードは、右上にR.drawable.refreshというアイコンが付いた更新ボタンを追加します。十分なスペースがある場合にのみアイコンが表示され、それ以外の場合はメニューに表示されます

    private Menu myMenu

    public void changeMenu (int resource) {

    myMenu.getItem(0).setIcon(resource); //here resource is your R.drawable.insertid

    }

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    // Inflate the menu; this adds items to the action bar if it is present.
    // getMenuInflater().inflate(R.menu.activity_main, menu);
            myMenu = menu;
    MenuInflater inflater = getSupportMenuInflater();
    inflater.inflate(R.menu.activity_main, menu);
    menu.add("Refresh").setIcon(R.drawable.refresh)
            .setOnMenuItemClickListener(new OnMenuItemClickListener() {

                @Override
                public boolean onMenuItemClick(MenuItem item) {
                                            doStuff();
                    return false;
                }
            }).setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM);
    return super.onCreateOptionsMenu(menu);
}

コードを変更したい場所でchangeMenuを呼び出すだけで、ドローアブルIDを渡すことができます。

編集:これをアクティビティに貼り付けて、要求するインポートを追加します。必要に応じて、独自のドローアブルを追加する必要があります。アイコンは測定することを忘れないでください

  • mdpi:32x32
  • hdpi:48x48
  • xhdpi:64x64
于 2013-02-28T14:56:03.993 に答える
-1

実行時に変更したい場合は、(onCreateOptionsMenu で) メニューを作成し、メニュー項目を保存する必要があります。このような

MenuItem changeableMenuItem = menu.add("new Item");

changeableMenuItem.setIconアイコンを変更するために呼び出すことができるようにchangeableMenuItemなりました。クラス内にフィールドを作成すると、クラス内のどこでもアイコンを変更できます。

メニュー項目の作成方法がわからない場合は、ダンテの回答を参照できます。

于 2013-02-28T15:02:07.917 に答える