1

アクションバーにメニュー項目を表示しています。このアイテムの背景を設定したいと思います。そうしないと、ローカライズにstrings.xmlを使用できないため、アイコンを使用しないことをお勧めします(この特定のメニュー項目にいくつかのテキストを表示していますが、これはいくつかの言語に翻訳されます.)。

ここでの回答のほとんどは、アイコンを使用することを提案しています。もちろん、アイコンはテキストをカバーします。 Android:icon の代わりに Android:background を試しても、何も表示されません。

したがって、基本的にはアクションバーのメニュー項目をカスタム画像でカスタマイズしたいのですが、同時に何かを書き込むことができます (いくつかの文字列を引っ張る)。xmlでこれを行う方法はありますか?

PS私はTheme.Holo.Light.DarkActionBarを使用していますが、すでにアクションバーの背景を変更しています。

4

2 に答える 2

2

以下のような '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>

これらを 4 つ、各ドローアブル ディレクトリ (xhdpi、hdpi、mdpi、および ldpi) に 1 つずつ作成する必要があります。形状のサイズは、ディレクトリによって異なります。

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

(これによると: http://developer.android.com/guide/practices/ui_guidelines/icon_design_action_bar.html )

そして、背景付きの ActionBar アイコンを取得しました。

于 2012-11-22T18:07:50.790 に答える
1

回避策として、ローカライズ用に常に異なるアイコンを使用できます。あなたが持っているのを止めるものは何もありません:

/drawable-fr/
/drawable-us/

一方、継承しているテーマに関係があると思われる場合は、DarkActionBar のソース コードを調べてから、styles.xml でこれを拡張して、変更する値 (色) を上書きすることができます。

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

于 2012-06-08T23:25:06.353 に答える