Android 安卓:按钮纹波只有在没有背景色的情况下才会显示?

Android 安卓:按钮纹波只有在没有背景色的情况下才会显示?,android,background-color,ripple,rippledrawable,Android,Background Color,Ripple,Rippledrawable,我有一个ImageView,屏幕上角有一个涟漪选择器。由于某种原因,涟漪不会起作用。 请看我的照片! (我需要10次重复才能发布图像-u-) 视图B的背景颜色为深绿色。一旦我删除了这个背景色,涟漪就会起作用 myripple\u selector.xml: <ripple xmlns:android="http://schemas.android.com/apk/res/android" android:color="@color/button_highlight"> <

我有一个
ImageView
,屏幕上角有一个涟漪选择器。由于某种原因,涟漪不会起作用。 请看我的照片! (我需要10次重复才能发布图像-u-)

视图B
的背景颜色为深绿色。一旦我删除了这个背景色,涟漪就会起作用

my
ripple\u selector.xml

<ripple xmlns:android="http://schemas.android.com/apk/res/android"
    android:color="@color/button_highlight">
</ripple>

我在ImageView上设置涟漪,如下所示:
android:background=“@drawable/ripple\u选择器”


如果我给涟漪选择器一个遮罩或背景,它也会工作,但我不想遮罩涟漪。有什么问题吗?Ty.

我不知道这是一个bug还是ripple drawable的预期行为,但我得出的结论是,如果ripple drawable放置在一个背景色的顶部,而该背景色不在它自己的
视图中,它将不会被绘制。

ripple将在提供的遮罩上或父视图的背景上绘制自己。如果父视图具有透明背景,则不会绘制涟漪。如果您有一个RelativeLayout,其中两个子对象相互重叠,则顶部有涟漪,底部会遮挡涟漪,因为涟漪仍然绘制在RelativeLayout的背景上,而不是直接绘制在视图下方。这是预期的行为。无遮罩的涟漪在视图的父视图上绘制自身。如果有什么东西(视图B)遮住了父对象,您将看不到涟漪。