Android: у вас есть эффект пульсации, цвет состояния по умолчанию прозрачный?
Что-то вроде следующего, но оно не работает. Если я переключу выталкиваемый цвет на что-то вроде синего, он работает.
<ripple xmlns:android="http://schemas.android.com/apk/res/android"
android:color="?android:colorControlHighlight">
<item android:drawable="@android:color/transparent"/>
</ripple>
Ответы
Ответ 1
Необходимо добавить маску:
<ripple xmlns:android="http://schemas.android.com/apk/res/android"
android:color="?android:colorControlHighlight">
<item android:id="@android:id/mask">
<color android:color="@android:color/white" />
</item>
</ripple>
Ответ 2
Как-то ответ @JMPergar не работал у меня.
Тем не менее, я смог подумать об этом обходном пути: если цвет за прозрачной кнопкой является сплошным (не градиентом или пятнистым изображением), вы можете использовать этот цвет в качестве основной кнопки, не нажатой.
<?xml version="1.0" encoding="utf-8"?>
<ripple xmlns:android="http://schemas.android.com/apk/res/android"
android:color="@color/profile_transparent_button_pressed"
>
<item>
<shape>
<corners android:radius="@dimen/profile_transparent_button_corner_radius" />
<solid android:color="@color/profile_background" />
</shape>
</item>
</ripple>
где @color/profile_transparent_button_pressed
- цвет выделения кнопки, а @color/profile_background
- цвет макета позади этой кнопки. Он работает точно так, как ожидалось, но все же определенно является обходным решением, поэтому сначала попробуйте ответить @JMPergar.