首页 > 解决方案 > 如何在android中实现“溢出”涟漪效应

问题描述

我在 YouTube 的安卓应用中看到了这种涟漪效应。我想在我的应用程序中获得相同的效果。我应该创建自己的 Ripple-Drawable 还是有不同的方法?实际上我已经尝试过“?attr/selectableItemBackground”,但效果却大不相同。 我想要达到的涟漪效果

这就是我的涟漪效应的样子: 在此处输入图像描述

标签: javaandroidripplerippledrawable

解决方案


您可以从选择器创建波纹。请参见下面的示例。

1.这是API 21及以上,在drawable中创建

custom_ripple.xml

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true">
    <shape android:shape="rectangle">
        <solid android:color="@color/line" />
    </shape>
</item>
<item>
    <shape android:shape="rectangle">
        <solid android:color="@android:color/transparent" />
    </shape>
</item>
</selector>

2.在drawable-v21中为21以下API添加同名文件。

v1/custom_ripple.xml

<?xml version="1.0" encoding="utf-8"?>
<ripple xmlns:android="http://schemas.android.com/apk/res/android"
android:color="@color/line">

<item
    android:id="@android:id/mask"
    android:drawable="@android:color/white" />
</ripple>

最后设置 android:background="@drawable/custom_ripple" ,你想要波纹的地方。


推荐阅读