繁体   English   中英

如何设置actionBar中显示的菜单项的背景

[英]how to set background for menu item shown in actionBar

我在操作栏中显示一个菜单项。 我想为这个项目设置背景。 我宁愿不使用图标,因为否则我不能使用strings.xml进行本地化(我在这个特定的菜单项中显示一些文本,将以多种语言翻译)。

这里的大多数答案建议使用图标。 图标当然会覆盖文本,如果我尝试android:background而不是android:icon它就不会显示任何内容。

所以基本上我想用自定义图像自定义操作栏中的菜单项,但同时能够在其上写一些东西(拉一些字符串)。 在xml中有这种方法吗?

PS我正在使用Theme.Holo.Light.DarkActionBar,但我已经改变了操作栏的背景。

作为一种解决方法,您可以始终为本地化提供不同的图标。 没有什么可以阻止你:

/drawable-fr/
/drawable-us/

另一方面,如果您认为它与您继承的主题有关,您可以查看DarkActionBar的源代码,然后在styles.xml中扩展它,覆盖您想要更改的值(颜色)。

https://github.com/android/platform_frameworks_base/tree/master/core/res/res/values

为每个要在“drawable”目录的操作栏中显示的图标创建一个xml文件,如下所示:

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >
    <item android:drawable="@drawable/menuitem_bk"/>
    <item android:drawable="@drawable/icon_one"/>      
</layer-list>

Drawable icon_one只是带有透明背景的图标,'menuitem_bk'将是一个drawable,定义如下:

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="rectangle" >
    <size
        android:height="36dp"
        android:width="36dp" />
    <solid android:color="@color/action_bar_items_bk_color" />
</shape>

您将必须创建其中的四个,每个可绘制目录中有一个(xhdpi,hdpi,mdpi和ldpi)。 根据目录,形状的大小会有所不同:

  • xhdpi - > 48x48 hdpi - > 36x36 mdpi - > 24x24 ldpi - > 18x18

(根据这一点: http//developer.android.com/guide/practices/ui_guidelines/icon_design_action_bar.html

你得到了带有背景的ActionBar图标。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM