我正在尝试在已经具有背景XML的相对布局的点击上实现涟漪效应。但是我该怎么办呢?如果要在相对布局中添加波纹效果,则必须将背景XML中的标记更改为<ripple></ripple>,但是这样做时,我会丢失为相对布局指定的拐角半径和纯色。

下面是相对布局的代码:

<RelativeLayout
      android:layout_width="400dp"
      android:layout_height="100dp"
      android:background="@drawable/roundedcorners">
</RelativeLayout>


下面是后台XML“ roundedcorners”中的代码

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="rectangle">
    <solid android:color="#000000"/>
    <corners
        android:radius="25dp"/>
</shape>


我寻找了相同的帖子,但没有找到帖子,因为这些帖子只提供了有关如何实现涟漪效应的信息,而没有关于如何合并并一起使用涟漪效应,比例或形状标签的信息。

最佳答案

解决方案在于RippleDrawable的特殊遮罩层。您可以通过设置为android:id@android:id/mask值指定遮罩层。

对于下面的示例,您可以将蒙版设置为与要蒙版的视图相同的大小/形状,然后波纹只会在该区域显示。做这样的事情:

    <?xml version="1.0" encoding="utf-8"?>
    <ripple xmlns:android="http://schemas.android.com/apk/res/android"
        android:color="?android:attr/colorControlHighlight">
        <item android:id="@android:id/mask">
           <shape
              android:shape="rectangle">
              <solid android:color="#000000"/>
               <corners
                 android:radius="25dp"/>
            </shape>
        </item>
        <item android:drawable="@drawable/rounded_corners" />
    </ripple>


现在您可以将其设置为您的android:background

08-05 13:57