Цвет маски RippleDrawable, для чего он нужен?

Ссылаясь на RippleDrawable для Android L, https://developer.android.com/reference/android/graphics/drawable/RippleDrawable.html, есть способ маскировать, чтобы сдержать волновой эффект в представлении. Маскировка выполняется как

<ripple android:color="#ff0000ff">
    <item android:drawable="@drawable/white" />
</ripple>

Мы могли бы также замаскировать это, используя

<ripple android:color="#ff0000ff">
    <item android:drawable="@drawable/black" />
</ripple>

Как упоминалось в документе, слой маски не рисуется на экране, а просто маскирует эффект ряби. Мне любопытно, почему нужно устанавливать цвет (белый или черный или что-нибудь) там? Есть ли у нас какой-нибудь значимый из нас, устанавливающий цвет как Маска, или это действительно какое-то значение подойдет?

Надеется кто-то просветить... спасибо!

1 ответ

Использование непрозрачного цвета для вашей маски - будь то @android:color/white, #ff000000, или же #ff123456 не имеет значения - означает, что вы маскируете против полностью непрозрачного прямоугольника того же размера, что и нарисованный вами. Это наиболее эффективный путь рендеринга для масок пульсации.

Другие вопросы по тегам