我正在尝试在已经具有背景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