在点击已有背景XML的相对布局时应用涟漪效果

时间:2016-12-18 06:22:18

标签: android

我正在尝试在已经具有后台XML的相对布局的点击上实现涟漪效果。但是我怎么能这样做呢?如果我想将涟漪效果添加到相对布局,那么我必须将背景XML中的标记更改为<ripple></ripple>,但是当我这样做时,我会丢失为相对布局提供的角半径和纯色

以下是相对布局的代码:

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

以下是背景XML&#34; roundcorners&#34;

中的代码
<?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>

我一直在寻找相同但没找到的帖子,因为这些帖子只有关于如何实现涟漪效果的信息,而不是关于如何合并和使用涟漪效果,缩放或形状标签的信息。

1 个答案:

答案 0 :(得分:2)

解决方法是RippleDrawable的特殊遮罩层。您可以通过设置为android:id的{​​{1}}值指定遮罩层

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

@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>