簡體   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