Standard-Selektor-Hintergrund in Clickable Views

Ich habe einige anklickbare Ansichten und ich möchte den standardmäßigen verfügbaren Hintergrund festlegen, der auf der Liste vorhanden ist (in ICS ist eine blaue Farbe). Ich habe versucht, als Hintergrund zu setzen:

android:background="@android:drawable/list_selector_background" 

Aber es ist nicht die Standard-blau ich habe standardmäßig (die, die ich verwendete, ist orange). Was ist die Zeichnung verwendet standardmäßig auf Android als Klick-Selektor?

Vielen Dank

  • Android zeichnen Text in Rechteck auf der Mitte und zuschneiden sie, wenn nötig
  • Kann ich Rechteck in XML zeichnen?
  • Zeichnen Sie Bitmap in Custom ImageView und erhalten Sie die Koordinaten der ImageView unabhängig vom Gerät
  • Innerer Schatten auf Kreis Android Canvas
  • Android: auf der Suche nach einer drawArc () Methode mit Innen- und Außenradius
  • Neu auf Android - Zeichnung zur Laufzeit
  • Android: benutzerdefinierte Schaltfläche Form
  • Dreieck mit abgerundeten Ecken herstellen
  • 7 Solutions collect form web for “Standard-Selektor-Hintergrund in Clickable Views”

    Es ist list_selector_holo_dark oder die äquivalente holo light Version; Und das sind die Vorgaben in Honeycomb und höher. list_selector_background ist die Nicht-Holo-Version, die in Lebkuchen und unten verwendet wird.

    EDIT : Ich glaube (kann aber nicht bestätigen), dass die Plattform Agnostic Selektor ist ?android:attr/listSelector

    Das funktioniert für mich:

     android:background="?android:attr/selectableItemBackground" 

    Wenn Sie appcompat-v7 , können Sie einfach verwenden ?attr/selectableItemBackground .

    Es gibt eine Möglichkeit, alle gültigen Antworten zu kombinieren:

    Definiere ein Attribut (zB in values ​​/ attrs.xml):

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

    In deinem plattformabhängigen Themenbereich (zB in values ​​/ styles.xml oder values ​​/ themes.xml) erkläre das:

     <style name="Theme.Platform" parent="@android:style/Theme.Whatever"> <item name="clickableItemBackground">@android:drawable/list_selector_background</item> </style> 

    In deinem plattformabhängigen Themenbereich für api-11 + (zB in values-v11 / styles.xml oder values-v11 / themes.xml) deklariere dies:

     <style name="Theme.Platform" parent="@android:style/Theme.Holo.Whatever"> <item name="clickableItemBackground">?android:attr/selectableItemBackground</item> </style> 

    Verwenden Sie dann ?attr/clickableItemBackground wo immer nötig.

    Eine Lösung ähnlich der Antwort von flx, aber ohne zusätzliche Attributdefinition.

    Plattformunabhängiger Stil für Pre-Holo-Geräte (in res\values\styles.xml ):

     <style name="SelectableItem"> <item name="android:background">@android:drawable/list_selector_background</item> </style> 

    Style für Holo-Geräte (API Level 14+) (in res\values-v14\styles.xml ):

     <style name="SelectableItem"> <item name="android:background">?android:attr/selectableItemBackground</item> </style> 

    LinearLayout Sie Stil auf die LinearLayout Ansicht, zB LinearLayout :

     <LinearLayout style="@style/SelectableItem" android:layout_width="match_parent" android:layout_height="wrap_content"> ... </LinearLayout> 

    Alternative,

     android:background="?android:attr/listChoiceBackgroundIndicator 

    Wenn Sie nur wollen, dass die Elemente blau markieren (oder was auch immer die aktuelle Voreinstellung ist), während sie geklickt werden.

    Das funktioniert gut auf api 11 und höher. Aber wie gesagt, wird es nicht an früheren Versionen arbeiten.

     android:background="?android:attr/selectableItemBackground" 

    Hier ist eine Lösung, um es auf allen Versionen laufen laufen Android.

    1. Fügen Sie die entsprechenden Farben innerhalb der colors.xml hinzu, die sich in Ihrem Werteordner befindet. Es sollte als solches erscheinen:

       <color name="white">#ffffff</color> <color name="blue">#7ecce8</color> 
    2. Erstellen Sie eine XML-Selektordatei. Hier nannte ich es button_selection.xml

       <?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:state_pressed="true" android:drawable="@color/blue"/> <!--pressed --> <item android:state_focused="true" android:drawable="@color/blue"/> <!-- focused --> <item android:drawable="@color/white"/> <!-- default --> </selector> 
    3. Gehen Sie zu Ihrer Ansicht oder Schaltfläche und legen Sie die neu erstellte button_selection.xml als Hintergrund fest.

       android:background="@drawable/button_selection" 
    Das Android ist ein Google Android Fan-Website, Alles ├╝ber Android Phones, Android Wear, Android Dev und Android Spiele Apps und so weiter.