Lollipop RippleDrawable vs Selector für Heran Lollipop

? Neoh @ | Original: StackOverFlow
---

Ich habe Buttons mit verschiedenen draw9patch png als Hintergrund. Zur Zeit sind die Tasten von selector, die in etwa so aussehen gesteuert :

<selector xmlns:android="http://schemas.android.com/apk/res/android">
  <item android:drawable="@drawable/pressed" android:state_pressed="true"/>
  <item android:drawable="@drawable/disabled" android:state_enabled="false"/>
  <item android:drawable="@drawable/focused" android:state_focused="true"/>
  <item android:drawable="@drawable/default"/>
</selector>

Für die Android Lollipop sie eine RippleDrawable für den Touch- Effekt, der in etwa so geht :

<ripple xmlns:android="http://schemas.android.com/apk/res/android" android:color="?android:colorControlHighlight">
    <item>
    ...
    </item>
</ripple>

In Bezug auf den neuen Touch- Wellen-Effekt :

1 : Kann ich draw9patch als Hintergrund für RippleDrawable ?

2 : Wie kann ich empfangen die oben genannten zwei verschiedenen XML ist Ich möchte Materialdesign zu folgen? Muss ich zu berappen einen neuen Ordner / xml Layout für die neue RippleDrawable ?

---

Top 5 Antwort

1alanv @

1) Ja . In der Dokumentation für RippleDrawable für weitere Details, wie Schichten zusammengesetzt, aber im Grunde Sie wollen:

<?xml version="1.0" encoding="utf-8"?>
<ripple xmlns:android="http://schemas.android.com/apk/res/android"
    android:color="?android:attr/colorControlHighlight">
    <item android:drawable="@drawable/yourninepatch" />
</ripple>

Oder auch die deaktivierten Zustand auf saubere Weise zu behandeln, möchten Sie vielleicht :

<?xml version="1.0" encoding="utf-8"?>
<ripple xmlns:android="http://schemas.android.com/apk/res/android"
    android:color="?android:attr/colorControlHighlight">
    <item>
        <selector>
            <item android:state_enabled="false">
                <nine-patch
                    android:src="@drawable/yourninepatch"
                    android:alpha="?android:attr/disabledAlpha" />
            </item>
            <item>
                <nine-patch android:src="@drawable/yourninepatch" />
            </item>
        </selector>
    </item>
</ripple>

2) Ja, sollten Sie Ihre Rund XML in drawable - v21 zu platzieren.