改变涟漪效应的颜色

Changing color of Ripple Effect

我得到了一个背景为黑色的 ListView。现在我的问题是默认的波纹效果也是黑色的,用户看不到它。

如何在不依赖 API 级别的情况下更改涟漪效果的颜色? (我想获得白色)。

您可以将其设置为您的视图背景:

<ripple xmlns:android="http://schemas.android.com/apk/res/android"
    android:color="?android:attr/colorAccent">
<item android:id="@android:id/mask">
    <color android:color="#42ffffff" />
</item>

有关更多详细信息,请参阅 Whosebug 上的这个问题:

并且您可以将此库用于较低的 api:

https://github.com/traex/RippleEffect

只需在 styles.xml

中添加所需颜色的 'item: colorControlHighlight'
<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
    <item name="colorControlHighlight">@color/white</item>
</style>

简单的方法是在 colors.xml 文件中定义这两种颜色

<color name="ripple_material_dark">#33ffffff</color>
<color name="ripple_material_light">#1f000000</color>

干杯。

使用 Theme.MaterialComponents.* 主题时,波纹颜色可以定义为 将以下行添加到即 Ouline 按钮样式。

<item name="rippleColor">@color/outline_button_ripple_color</item>