2011-01-02 9 views
2

Ich möchte Farben für das Klicken anstelle von Bildern einstellen. Dies führt zu keinen Fehlern, außer zum Schließen der Daten zur Laufzeit. Ist dies überhaupt möglich oder kann der Selektor nur für Bilder verwendet werden?Verwenden von Farben in einem Selektor xml

-Code Ich versuche, unten:

<selector xmlns:android="http://schemas.android.com/apk/res/android"> 

    <item android:state_focused="true" android:state_pressed="true" android:background="#00C0FF" /> 
    <item android:state_focused="true" android:state_pressed="false" android:background="#0060FF" /> 
    <item android:state_focused="false" android:state_pressed="true" android:background="#00C0FF" /> 
    <item android:state_focused="false" android:state_pressed="false" android:background="#FFFFFF" /> 

</selector> 

Antwort

3

Nicht pro der documentation

<item> 
    Defines a drawable to use during certain states, as described by its attributes. Must be a child of a <selector> element. 

    android:drawable 
     Drawable resource. **Required.** Reference to a drawable resource. 

Sie können eine einfache Form ziehbar schaffen die Farbe

<shape xmlns:android="http://schemas.android.com/apk/res/android"> 
    <solid android:color="#33FF33"/> 
</shape> 
+0

Dies ist per Definition eine raffinierte Lösung für dieses Problem. Danke! – Espen

1

Ist es überhaupt möglich, dies zu tun oder nur für Bilder verwendet werden Selektor kann?

Nein, das macht keinen Sinn (zumindest für mich). Ohne ein "Drawable", wie wird es genau wissen, was auf State_focused und State_Pressed gesetzt werden soll?

Warum erstellen Sie nicht einfach einfarbige Zeichen (z. B. Bitmaps) und stellen diese als Zeichen für jedes Element bereit?

+0

Nun zu halten, der Androide: Hintergrund-Tag kann sowohl handhaben. Bei Verwendung von android: background = "@ drawable/image" wird ein Bild verwendet, wenn android: background = "# FFFFFF" die Farbe verwendet. Ich sehe den Effekt, dass es sich im drawbaren Ordner befinden muss, was bedeutet, dass ein Selektor-XML einen eigenen Ordner haben sollte oder dass ein Zeichnungsobjekt auch eine Farbe sein könnte. Es macht keinen Sinn, Bilder für einfache Farben auf einem Gerät zu verwenden, auf dem die Ressourcen begrenzt sind. – Espen

+0

Angemessener Kommentar. Wie ich sagte, konnte ich persönlich nicht sehen, wie es ohne "etwas" funktionieren könnte, das "konzentriert" und "gedrückt" hätte werden können. Darens Antwort findet einen guten Mittelweg zwischen Ihnen und mir. Wenn man das sagt, werden kleine einfarbige Bilder sehr gut komprimiert (mit minimalen Ressourcen) und können in einer Benutzeroberfläche ohne Degredierung erweitert werden. – Squonk

+0

Auch ich denke, dass Android ein Bild aus der Form "erstellt", als ob es ein Bild wäre - so als eine Ressource wäre es ziemlich gleich. Einfach die Form zu machen scheint besser zu sein :-) – Espen

Verwandte Themen