如何更改操作栏中的选项菜单图标?
如何更改选项菜单的索引图标?如何更改操作栏中的选项菜单图标?
我的意思是图标(3)。
这里是我的代码:
@Override
public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.options, menu);
return true;
}
这里是XML文件:
<item android:id="@+id/Bugreport"
android:title="@string/option_bugreport" />
<item android:id="@+id/Info"
android:title="@string/option_info" />
<item android:id="@+id/About"
android:title="@string/option_about" />
以下行应在应用进行更新 - >主 - >水库 - >数值 - > Styles.xml
<!-- Application theme. -->
<style name="AppTheme" parent="AppBaseTheme">
<!-- All customizations that are NOT specific to a particular API-level can go here. -->
<item name="android:actionOverflowButtonStyle">@style/MyActionButtonOverflow</item>
</style>
<!-- Style to replace actionbar overflow icon. set item 'android:actionOverflowButtonStyle' in AppTheme -->
<style name="MyActionButtonOverflow" parent="android:style/Widget.Holo.Light.ActionButton.Overflow">
<item name="android:src">@drawable/ic_launcher</item>
<item name="android:background">?android:attr/actionBarItemBackground</item>
<item name="android:contentDescription">"Lala"</item>
</style>
这是它是如何做。如果你想改变操作栏中的菜单图标
,你可以通过做
<item
android:id="@+id/menus"
android:actionProviderClass="@android:style/Widget.Holo.ActionButton.Overflow"
android:icon="@drawable/your_icon"
android:showAsAction="always">
<item android:id="@+id/Bugreport"
android:title="@string/option_bugreport" />
<item android:id="@+id/Info"
android:title="@string/option_info" />
<item android:id="@+id/About"
android:title="@string/option_about" />
</item>
调用,一个黑客是一种误导。这是Android系统的标准部分。 – 2014-10-10 13:31:56
好吧,我明白了...... – Pravin 2014-10-10 13:38:34
我并不是说你错了,这是正确的答案。但它绝对不是黑客。 – 2014-10-10 13:39:28
-
改变动作条的styles.xml
<resources> <!-- Base application theme. --> <style name=“MyTheme" parent="@android:style/Theme.Holo"> <!-- Pointer to Overflow style DONT forget! --> <item name="android:actionOverflowButtonStyle">@style/MyOverFlow</item> </style> <!-- Styles --> <style name="MyOverFlow" parent="@android:style/Widget.Holo.ActionButton.Overflow"> <item name="android:src">@drawable/ic_your_action_overflow</item> </style> </resources>
-
认沽自定义主题“的MyTheme”在AndroidManifest.xml中的应用程序标记您的自定义菜单图标
<application android:name="com.example.android.MainApp" android:theme="@style/AppTheme"> </application>
玩得开心。@。@
我有一个简单的解决方案,它完美地工作对我来说:你们班
Drawable drawable = ContextCompat.getDrawable(getApplicationContext(),R.drawable.change_pass);
toolbar.setOverflowIcon(drawable);
1)声明menu
。
private Menu menu;
2)onCreateOptionsMenu
做到以下几点:
public boolean onCreateOptionsMenu(Menu menu) {
this.menu = menu;
getMenuInflater().inflate(R.menu.menu_orders_screen, menu);
return true;
}
3)在onOptionsItemSelected
,获得该项目,并做修改的要求(图标,文字,颜色,背景)
public boolean onOptionsItemSelected(MenuItem item) {
int id = item.getItemId();
if (id == R.id.action_search) {
return true;
}
if (id == R.id.ventor_status) {
return true;
}
if (id == R.id.action_settings_online) {
menu.getItem(0).setIcon(getResources().getDrawable(R.drawable.history_converted));
menu.getItem(1).setTitle("Online");
return true;
}
if (id == R.id.action_settings_offline) {
menu.getItem(0).setIcon(getResources().getDrawable(R.drawable.cross));
menu.getItem(1).setTitle("Offline");
return true;
}
return super.onOptionsItemSelected(item);
}
备注:
如果您有3菜单项:
menu.getItem(0)= 1的项目,
menu.getItem(1)= 2 ITEAM,
menu.getItem(2)= 3项
在此基础上相应地作为进行更改根据您的要求。
他正在讨论菜单图标本身,而不是菜单项。 – Genc 2016-09-23 09:51:54
//just edit menu.xml file
//add icon for item which will change default setting icon
//add sub menus
///menu.xml file
<item
android:id="@+id/action_settings"
android:orderInCategory="100"
android:title="@string/action_settings"
android:icon="@drawable/your_icon"
app:showAsAction="always" >
<menu>
<item android:id="@+id/action_menu1"
android:icon="@android:drawable/ic_menu_preferences"
android:title="menu 1" />
<item android:id="@+id/action_menu2"
android:icon="@android:drawable/ic_menu_help"
android:title="menu 2" />
</menu>
</item>
使用赛拉扎梅迪的例子,并添加在Application theme
name=actionOverflowButtonStyle
的参数的兼容性。
<!-- Application theme. -->
<style name="AppTheme" parent="AppBaseTheme">
<!-- All customizations that are NOT specific to a particular API-level can go here. -->
<item name="android:actionOverflowButtonStyle">@style/MyActionButtonOverflow</item>
<!-- For compatibility -->
<item name="actionOverflowButtonStyle">@style/MyActionButtonOverflow</item>
</style>
一个短期和简单的方法来更改选项菜单中的索引图标的颜色是:
<!-- android:textColorSecondary is the color of the menu overflow icon (three vertical dots) -->
<item name="android:textColorSecondary">@color/optionMenuIconColor</item>
上方添加一行代码到风格 .xml(可自定义主题)文件, 希望你得到解答,非常感谢。
即使它起作用,这也是一件愚蠢的事情去做;它会更改实际的辅助应用程序的文本颜色,在许多位置和小部件中用作 - 您猜对它 - 文本颜色。 – 2017-03-22 03:12:01
这正常工作在我的情况:
Drawable drawable = ContextCompat.getDrawable(getApplicationContext(),
R.drawable.change_pass);
toolbar.setOverflowIcon(drawable);
@smartmouse让我知道你是否面临任何问题 – 2014-10-10 13:38:49
工作过,非常感谢你! contentDescription中“Lala”的需求是什么? – smartmouse 2014-10-10 14:41:18
欢迎您,我很乐意为您提供帮助,实际上没有这种需求,但是我们给每个图片描述了这一点,这就是为什么我使用它的原因,'lala'意思是我的语言中的好朋友;) – 2014-10-11 19:06:06