Как определить android:state_selected
внутри RippleDrawableКак установить state_selected в пульсации вытяжки
я следующий XML для пульсирующей вытяжки, но цвета фона не отображается, когда я установил myView.setSelected(true);
<?xml version="1.0" encoding="utf-8"?>
<ripple
xmlns:android="http://schemas.android.com/apk/res/android"
android:color="#DDDDDD"
>
<item android:id="@android:id/mask">
<shape>
<solid
android:color="@color/black" />
</shape>
</item>
<item android:state_selected="true">
<shape>
<solid
android:color="#EEEEEE" />
</shape>
</item>
<item>
<color android:color="#FFFFFF" />
</item>
</ripple>
Вам не нужно, чтобы установить слой маски здесь, так как ваша маска и содержание имеют одинаковые границы и непрозрачность. Удаление маски значительно улучшит производительность. – alanv
Спасибо @alanv. Удалена маска. Вы упомянули одинаковые границы и непрозрачность, как непрозрачность работает в маске? – Sohaib
По какой-то причине, если вы используете прозрачный цвет для нормального состояния селектора, вы должны использовать маску, иначе пульсация не будет нарисована. – vovahost