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

Я немного потерял о том, как правильно использовать 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 который устанавливает незапечатанный фон) – это селектор списка по умолчанию, используемый в леденец.