Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/329.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android操作栏图像_Android_Android Actionbar - Fatal编程技术网

Android操作栏图像

Android操作栏图像,android,android-actionbar,Android,Android Actionbar,我想在操作栏的最右角显示一个图像。我希望根据一些代码检查在运行时设置此图像。有人能指导我怎么做吗 谢谢你用这个。这段代码在右上角添加了一个名为R.drawable.refresh的刷新按钮。只有在有足够空间时才会显示图标,否则会在菜单上显示 private Menu myMenu public void changeMenu (int resource) { myMenu.getItem(0).setIcon(resource); //here resource is

我想在操作栏的最右角显示一个图像。我希望根据一些代码检查在运行时设置此图像。有人能指导我怎么做吗


谢谢你用这个。这段代码在右上角添加了一个名为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

使用这个。这段代码在右上角添加了一个名为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

如果要在运行时更改它,则需要制作菜单(在OnCreateOptions菜单中)并保存菜单项。像这样

MenuItem changeableMenuItem = menu.add("new Item");
现在,您可以调用
changablemenuitem.setIcon
来更改图标,如果将
changablemenuitem
设置为类中的字段,则可以在类中的任何位置更改图标


如果您不确定如何创建菜单项,可以参考Dante的答案。

如果您想在运行时更改它,则需要创建菜单(在OnCreateOptions菜单中)并保存菜单项。像这样

MenuItem changeableMenuItem = menu.add("new Item");
现在,您可以调用
changablemenuitem.setIcon
来更改图标,如果将
changablemenuitem
设置为类中的字段,则可以在类中的任何位置更改图标


如果您不确定如何制作菜单项,您可以参考但丁的答案。

OnCreateOptions菜单()的溢出菜单是显示图像/图标的一种方式,但我想这在运行时是无法实现的。OnCreateOptions菜单()的溢出菜单是一种显示图像/图标的方法,但我想这不能在运行时完成。但这将修复操作栏上的一个预定义图像。正如我所说的,我想在运行时根据一些代码加载图像。(要放置的图像根据代码的不同而不同)您仍然可以使用此代码执行此操作,只需将菜单与代码的变量关联,然后像这样调用它“menu.getItem(0).setIcon(icon)”我将编辑我的回答,但这将修复操作栏上的一个预定义图像。正如我所说的,我希望在运行时根据一些代码加载图像。(要放置的图像根据代码的不同而不同)您仍然可以使用此代码执行此操作,只需将菜单与代码的变量关联,然后像这样调用它“menu.getItem(0).setIcon(icon)”我将编辑我的答案