Java 如何实现一个;满溢;android中的里普利效应

Java 如何实现一个;满溢;android中的里普利效应,java,android,ripple,rippledrawable,Java,Android,Ripple,Rippledrawable,我在YouTube的android应用程序中看到了这种里普利效应。我想在我的应用程序中获得同样的效果。我应该创建自己的Ripple Drawable还是有其他方法? 事实上,我已经尝试了“?attr/selectableItemBackground”,但效果却大不相同。 这就是我的涟漪效应: 您可以从选择器创建涟漪。请参见下面的示例 1.这适用于API 21及以上版本,请在可绘制中创建 自定义_ripple.xml <?xml version="1.0" encoding="utf-8"

我在YouTube的android应用程序中看到了这种里普利效应。我想在我的应用程序中获得同样的效果。我应该创建自己的Ripple Drawable还是有其他方法? 事实上,我已经尝试了“?attr/selectableItemBackground”,但效果却大不相同。

这就是我的涟漪效应:

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

1.这适用于API 21及以上版本,请在可绘制中创建

自定义_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>
<?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>

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

v1/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>
<?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”设置在需要ripple的位置。

只需添加值
?android:SelectableItemBackgroundless
android:foreground
android:background


一定要使用android名称空间。

这是通过AppCompat主题由Material Design处理的。在这里了解这些:@shkschneider谢谢。我想我已经解决了我的问题。如果是这样,请不要犹豫回答你自己的问题并验证它;)尝试使用android:background=“?attr/selectableItemBackgroundBorderless”@shkschneider我希望我的答案很快就会在线。