Ich bin derzeit mit einem drawable für alle meine Tasten, die einen Farbverlauf über sie bekommt, wenn Sie die Taste drücken. Ich erreiche diesen Effekt, indem ich die verschiedenen Druckzustände und eine layer-list
.
Jetzt versuche ich, denselben Effekt mit einer ListView
. Ich kann ein anderes Bild als Hintergrund für ein Objekt in der Liste anzeigen, wenn ich darauf klicke, aber immer wenn ich versuche, ein Bild mit einem separaten Farbverlauf hinzuzufügen, wird es mit der Standard-Android-Farbe angezeigt, wenn ich auf ein Objekt in der Liste klicke. ListView
. Aber es zeigt meinen benutzerdefinierten Farbverlauf auf dieser Standardfarbe.
Ich weiß, das klingt etwas vage, deshalb habe ich einige Screenshots gemacht, um die Wirkung zu zeigen:
Schaltfläche mit Farbverlaufs-Overlay, funktioniert gut
ListView mit einem Hintergrund pro Objekt funktioniert nicht, wenn dieses Bild zusammen mit einem Farbverlaufs-Overlay verwendet wird
Die Zeichenfläche, die ich als Hintergrundbild für die ListView
Woran kann es liegen, dass der Farbverlauf auf der Schaltfläche funktioniert, aber nicht auf der ListView
? Wie ich schon sagte, funktioniert die Verwendung eines völlig anderen Bildes für den gedrückten Zustand gut, aber die Verwendung des Hintergrundbildes plus eines Farbverlaufs nicht.
Code für die ListView gedrückte Zustände
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<!-- Active tab -->
<item android:drawable="@drawable/list_gradient" android:state_focused="false" android:state_pressed="false" android:state_selected="true"/>
<!-- Inactive tab -->
<item android:drawable="@drawable/button_listpage_77px" android:state_focused="false" android:state_pressed="false" android:state_selected="false"/>
<!-- Pressed tab -->
<item android:drawable="@drawable/list_gradient" android:state_pressed="true"/>
<item android:drawable="@drawable/button_listpage_77px" />
</selector>
list_gradient.xml
</item>
<item>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<gradient android:angle="90" android:startColor="#880f0f10" android:centerColor="#8858585a" android:endColor="#88a9a9a9"/>
</shape>
</item>
</layer-list>
Nachdem ich heute ein paar Stunden lang herumgetüftelt habe, konnte ich mein Problem immer noch nicht lösen. Ich weiß, dass ich etwas übersehe, aber ich kann nicht herausfinden, was. Hat jemand eine Idee?