Intereting Posts
Создание таблицы / сетки с замороженным столбцом и замороженными заголовками Android Youtube Player Api завершает работу и создает Android – Выполнение остановки активности, которая не возобновляется Активность камеры Android не возвращается в мое приложение при нажатии кнопки OK Пользовательская позиция подсказки в поле «Редактировать текст». Android: чтение из файла (Openfileinput) Остановите Android Studio от использования библиотеки поддержки Как переместить 20-кратный запас слева от центра? Обновление LinearLayout после добавления представления PendingIntent запланирован с использованием AlarmManager.RTC-тип все еще вызывается в спящем режиме Как решить проблему GC_concurrent? Загрузите простой текстовый файл в Android Studio Виды анимационных приемов в андроиде? Android gradle src / androidTest / res / layout / mylayout.xml не найден в mypackage.R Адаптация Повторная настройка ответов с использованием GSON

Lollipop RippleDrawable vs Selector for Pre-Lollipop

У меня есть кнопки с различными draw9patch png качестве фона. В настоящее время кнопки управляются selector который выглядит примерно так:

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

Для Android Lollipop у них есть RippleDrawable для эффекта касания, который RippleDrawable примерно так:

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

Что касается нового эффекта пульсации касания:

1: Можно ли установить draw9patch в качестве фона для RippleDrawable ?

2: Как я размещаю два вышеперечисленных xml-файла, которые я хочу использовать в дизайне материалов? Нужно ли мне RippleDrawable новую папку / макет xml для нового RippleDrawable ?

Solutions Collecting From Web of "Lollipop RippleDrawable vs Selector for Pre-Lollipop"

1) Да. Дополнительную информацию о том, как слои компонуются, см. В документации для RippleDrawable, но в основном вы хотите:

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

Или, чтобы очистить доступ к отключенному состоянию, вы можете:

 <?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) Да, вы должны поместить свой рябь XML в drawable-v21.