2016-05-25 10 views
2

Ich versuche, benutzerdefinierte Designs für meine App zu erstellen. Daher möchte der Selektor das richtige Zeichen basierend auf dem aktuellen Thema auswählen. Leider sieht es nicht so aus, als würde irgendein Bild überhaupt aufgenommen werden.Verwenden von Attributen für Bitmap-Quellcode in einem aufklappbaren Selektor

Dies ist meine Wähler:

<?xml version="1.0" encoding="utf-8"?> 
<resources> 
    <attr name="test_a" format="reference"/> 
    <attr name="test_b" format="reference"/> 
</resources> 

Und mein Thema hat folgende:

<style name="MyTheme" parent="Theme.AppCompat.NoActionBar"> 
    <item name="test_a">@drawable/test_a_dark</item> 
    <item name="test_b">@drawable/test_b_dark</item> 
</style> 

<style name="MyTheme.Light"> 
    <item name="test_a">@drawable/test_a_light</item> 
    <item name="test_b">@drawable/test_b_light</item> 
</style> 

<?xml version="1.0" encoding="utf-8"?> 
<selector xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item android:state_pressed="true"> 
     <bitmap android:src="?attr/test_a" 
      android:gravity="center" /> 
    </item> 
    <item android:state_focused="true"> 
     <bitmap android:src="?attr/test_a" 
      android:gravity="center" /> 
    </item> 
    <item android:state_activated="true"> 
     <bitmap android:src="?attr/test_a" 
      android:gravity="center" /> 
    </item> 
    <item> 
     <bitmap android:src="?attr/test_b" 
      android:gravity="center" /> 
    </item> 
</selector> 

Meine Attribute in attrs.xml definiert sind

Das Design wird im Manifest nach Bedarf angewendet. Ich habe einige Fragen zu SO bezüglich dieses Sprichworts gesehen, dass es ein Problem gibt, aber Pre-Lolipop teste ich auf Marshmellow.

Antwort

0

Immer noch nicht sicher, warum dies im Fall aber geschieht, ist dies nützlich für jemanden, als Behelfslösung ich folgend getan:

1) Erstellt zwei Selektoren - ein für das dunkele Thema, direkt an dem dunklen Drawables zeigt, und eine für das Licht Themas

2) Erstellt ein Attribut mit dem Typ Referenz

3) modifiziert, um das Thema, das Attribut Punkt, an dem Wähler verwenden anstelle des ziehbaren

Verwandte Themen