【背景】
android的app中,原先是:
即:
对应的是标题栏(actionbar,titlebar)中,菜单按钮是文字,
想要换成图标。
注:
此处对应的配置是:
xml的配置:
res\menu\field_view_menu.xml
的:
<menu xmlns:android="http://schemas.android.com/apk/res/android" > <item android:id="@+id/save_edited_fields" android:orderInCategory="10" android:showAsAction="always" android:title="@string/save"/> </menu>
和:
res\menu\file_item.xml
的:
<menu xmlns:android="http://schemas.android.com/apk/res/android" > <item android:id="@+id/action_settings" android:orderInCategory="100" android:showAsAction="never" android:title="@string/action_settings"/> </menu>
对应的文字内容是:
res\values\strings.xml
的:
<?xml version="1.0" encoding="utf-8"?> <resources> ...... <string name="save">Save</string> <string name="setting">Setting</string> ...... </resources>
【解决过程】
1.参考:
去把android:title换成android:icon
改为:
<menu xmlns:android="http://schemas.android.com/apk/res/android" > <item android:id="@+id/action_settings" android:orderInCategory="100" android:showAsAction="never" android:title="@string/action_settings" android:icon="@drawable/settings"/> </menu>
看看效果。
不行。还是文字。
2.参考:
ActionBar Action Items not showing
加上:
xmlns:app="http://schemas.android.com/apk/res-auto" 变成: <menu xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto"> <item android:id="@+id/action_settings" android:orderInCategory="100" android:showAsAction="never" android:title="@string/action_settings" android:icon="@drawable/settings"/> </menu>
看看效果。结果问题依旧。
3.不过,貌似改错xml文件了?
所以去改:
res\menu\common_status_view_menu.xml
为:
<?xml version="1.0" encoding="utf-8"?> <menu xmlns:android="http://schemas.android.com/apk/res/android"> <item android:id="@+id/setting_menu" android:orderInCategory="100" android:showAsAction="ifRoom" android:title="@string/setting" android:icon="@drawable/settings"/> </menu>
试试。
结果是可以的。
4.再去修改另外的:
res\menu\field_save_status_view_menu.xml
为:
<?xml version="1.0" encoding="utf-8"?> <menu xmlns:android="http://schemas.android.com/apk/res/android" > <item android:id="@+id/save_edited_fields" android:orderInCategory="100" android:showAsAction="ifRoom" android:title="@string/save" android:icon="@drawable/save"/> </menu>
结果是:
可以正确显示了:
【总结】
把之前的xml中的menu,本身带了:
android:title="@string/save"
再添加上对应的:
android:icon="@drawable/save"
再去添加对应的
res/drawable/save.png
即可。
注:
1.对于别的图片,比如另外那个settings,也是同样操作即可。
2.貌似添加jpg图片,不支持。
估计是
res/drawable
只支持png,而不支持jpg图片。