2012-12-06 18 views
25

Ich habe ein Bild in zwei verschiedenen Farben, die zwei verschiedenen Themen in Android entsprechen. Ich möchte sie in meiner Aktionsleiste verwenden. Ich möchte auf ein Zeichen für die Ikone verweisen, ein Thema, das agnostisch ist, aber die ziehbare Referenz bezieht sich auf die helle Farbe für das helle Thema und die dunkle Farbe für das helle Thema.Ändern Drawbar basierend auf Thema

Im Menü:

<item 
     android:id="@+id/menu_attach_existing_picture" 
     android:icon="@drawable/buttonface_picture" 
     android:showAsAction="always" 
     android:title="@string/menu_attach_existing_picture"> 
    </item> 

dann in dem Stil Ich mag etwas haben, das @ ziehbar Karten/buttonface_picture zu @ ziehbar/buttonface_picture_light im Lichte Thema und @ ziehbar/buttonface_picture_dark für das dunkele Thema.

Ich habe das Gefühl, dass es einen Weg geben muss, aber ich habe Probleme, die Syntax zu finden. Wenn es etwas ändert, verwende ich ActionBarSherlock.

Antwort

59

Scheint wie ich immer nur eine Google-Suche oder zwei weg von meinen Antworten bin. Die Lösung lautet:

in styles.xml

<attr name="buttonface_picture" format="reference"/> 

dann in dem eigentlichen Thema:

<item name="buttonface_picture">@drawable/buttonface_picture_dark</item> 

oder

<item name="buttonface_picture">@drawable/buttonface_picture_light</item> 

Dann im menu.xml:

<item 
    android:id="@+id/menu_attach_existing_picture" 
    android:icon="?attr/buttonface_picture" 
    android:showAsAction="always" 
    android:title="@string/menu_attach_existing_picture"> 
</item> 

Die Accessing Resources Page kombiniert mit this SO schließlich bekam es in mein Gehirn zu klicken.

Verwandte Themen