android4.0已经默认icon是不显示的,即使你写了如下的菜单文件代码:
<item
android:title="@string/font_size"
android:icon="@drawable/font"
android:showAsAction="ifRoom|withText" />菜单项目的图标也不能显示出来,解决办法如下:
在设置菜单的Activity中添加如下代码(我目前读不懂是啥意思,但是先能用再说):
private void setIconEnable(Menu menu, boolean enable)
{
try
{
Class<?> clazz = Class.forName("com.android.internal.view.menu.MenuBuilder");
Method m = clazz.getDeclaredMethod("setOptionalIconsVisible", boolean.class);
m.setAccessible(true);
//MenuBuilder实现Menu接口,创建菜单时,传进来的menu其实就是MenuBuilder对象(java的多态特征)
m.invoke(menu, enable);
} catch (Exception e)
{
e.printStackTrace();
}
}对需要显示图标的菜单menu使用setIconEnable(menu,true), 如下:
public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater inflater = new MenuInflater(this);
inflater.inflate(R.menu.menu_main,menu);
setIconEnable(menu,true); // 就是这一句使图标能显示
return super.onCreateOptionsMenu(menu);
}若是上下文菜单就在onCreateContextMenu()方法中添加这行代码
重新运行,发现菜单项能显示图标了
Android 4.0 显示菜单图标
本文介绍了解决 Android 4.0 中菜单图标默认不显示的问题的方法。通过在 Activity 中添加特定代码,可以成功使菜单项图标在 Android 4.0 设备上显示。
2036

被折叠的 条评论
为什么被折叠?



