0

我在操作欄中顯示一個菜單項。我想爲此項目設置背景。我寧願不使用圖標,否則我不能使用strings.xml進行本地化(我在這個特定的菜單項中顯示了一些文本,這些文本將以多種語言翻譯)。如何設置背景菜單項顯示在actionBar

這裏的大多數答案建議使用圖標。當然,圖標會覆蓋文字,如果我嘗試使用android:background而不是android:icon,它不會顯示任何內容。

所以基本上我想用自定義圖像來自定義操作欄中的菜單項,但同時能夠在其上寫入一些東西(拉一些字符串)。有沒有辦法在XML中這個?

P.S.我使用Theme.Holo.Light.DarkActionBar,但我已經更改了操作欄的背景。

回答

1

創建每個你宛在操作欄以顯示類似下面的「繪製」目錄中的每個圖標的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> 

可繪製icon_one僅僅是一個帶有圖標透明背景和「menuitem_bk」將被被拉伸定義如下:

<?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)。 > 48×48 HDPI - - > 36X36 MDPI - > 24×24 LDPI - > 18×18

(Acording這樣:http://developer.android.com/guide/practices/ui_guidelines/icon_design_action_bar.html

  • xhdpi:

    形狀的大小將根據目錄是不同的

    你有你的ActionBar圖標背景。

1

作爲解決方法,您可以始終爲您的本地化設置不同的圖標。沒有什麼能阻止你有:

/drawable-fr/ 
/drawable-us/ 

在另一方面,如果你相信它是與你繼承你可以看看通過對DarkActionBar的源代碼,然後在styles.xml擴展這個主題覆蓋要更改的值(的顏色)。

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

+0

謝謝你的提示,我會研究一下。我知道我可以使用drawable來進行本地化,但是從誰負責翻譯(可能沒有圖像編輯技能),而不是讓他們編輯圖像來翻譯xml文件會更容易。 – Danny