我正在尝试在已经具有后台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>
我一直在寻找相同但没找到的帖子,因为这些帖子只有关于如何实现涟漪效果的信息,而不是关于如何合并和使用涟漪效果,缩放或形状标签的信息。
答案 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>