Intereting Posts
Как очистить unique_id в mixpanel android при выходе пользователя из системы? Когда край прокрутки просматривается при прокрутке в android Карты Google и приложения с картой имеют разные текущие позиции Панель поиска Android с пользовательским палец с динамическим текстом внутри Видео DRM WideVine, не воспроизводимое с помощью приложения-отправителя андроида Как получить количество миллисекунд, прошедших сегодня Как включить Android Download Manager Рисовать круговую диаграмму в Android? Как я могу обнаружить щелчок на заголовке ActionBar? Еще можно выбрать отключенные даты в подборщике даты AppCompat не поддерживает текущие функции темы – ничего не работает Как правильно отредактировать арабскую строку? Транзитивные зависимости для локальной aar-библиотеки Android не признает TTS Engine Будут ли все работать быстрее, если я сделаю свои переменные окончательными?

Создайте рябь без прозрачности

Я немного потерял о том, как правильно использовать Ripple Drawable.

Предположим, у меня есть это:

<?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android" > <item android:state_pressed="false" android:state_focused="true" android:drawable="@color/accent_color_light" /> <item android:state_pressed="true" android:drawable="@color/accent_color_light" /> <item android:drawable="@android:color/white" /> </selector> 

Таким образом, это простой белый фон, который изменяется на светло-синий, когда он сфокусирован или нажат.

Как я могу получить одни и те же цвета, но с эффектом пульсации? Думаю, мне нужно использовать маску, чтобы она не выходила за пределы взгляда?

Solutions Collecting From Web of "Создайте рябь без прозрачности"

Забыл ответить на мой вопрос.

 <?xml version="1.0" encoding="utf-8"?> <ripple xmlns:android="http://schemas.android.com/apk/res/android" android:exitFadeDuration="@android:integer/config_shortAnimTime" android:color="@color/my_color" > <item android:id="@android:id/mask"> <shape android:shape="rectangle" > <solid android:color="@android:color/holo_green_light" /> </shape> </item> </ripple> 

Цвет в элементе с маской id не отображается. Он используется для определения формы и границ эффекта пульсации. Без этого он может выйти за пределы взгляда.

RippleDrawable уже является StateListDrawable (т. StateListDrawable selector ), поэтому вы можете просто использовать рябь в качестве фона (с состоянием по умолчанию) – что-то вроде этого:

 <?xml version="1.0" encoding="utf-8"?> <ripple xmlns:android="http://schemas.android.com/apk/res/android" android:color="@color/accent_color_light"> <item android:id="@android:id/mask"> <color android:color="@android:color/white" /> </item> <item android:drawable="@android:color/white" /> </ripple> 

Часть маски ограничивает рябь (и, в действительности, вышеприведенный фрагмент, минус цвета и последний android:drawable который устанавливает незапечатанный фон) – это селектор списка по умолчанию, используемый в леденец.