[英]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)。 根據目錄,形狀的大小會有所不同:
(根據這一點: http : //developer.android.com/guide/practices/ui_guidelines/icon_design_action_bar.html )
你得到了帶有背景的ActionBar圖標。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.