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
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
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)”我将编辑我的答案