Lollipop RippleDrawable vs Selector for Pre-Lollipop Lollipop RippleDrawable vs Selector for Pre-Lollipop android android

Lollipop RippleDrawable vs Selector for Pre-Lollipop


1) Yes. See the documentation for RippleDrawable for more details on how layers are composited, but basically you want:

<?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>

Or to also handle the disabled state in a clean way, you might want:

<?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) Yes, you should place your ripple XML in drawable-v21.