【发布时间】:2018-06-10 13:49:43
【问题描述】:
在我的应用程序中,我想创建一个填充整个视图的波纹。因为它不能正常工作,所以我创建了一个最小的示例应用程序并在那里进行了尝试,但没有成功。
我的布局如下所示:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="match_parent"
android:layout_height="match_parent" android:padding="16dp">
<View
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/ripple"
android:onClick="onViewClicked" />
</LinearLayout>
我的drawable是这样定义的:
<ripple xmlns:android="http://schemas.android.com/apk/res/android"
android:color="#1E88E5"
android:radius="0dp">
<item
android:id="@android:id/mask"
android:drawable="@android:color/white" />
</ripple>
Here 是一个视频,它现在的样子。我希望这个圆圈(我认为它正式称为热点)从 middel 开始增长,直到它填满整个 View。我不是在谈论有意识地设置为 0dp 的波纹半径。你有什么想法我可以做到这一点吗?
编辑:最后我想实现类似this。
对于不想阅读所有答案的每个人:我设法实现它并为此创建了一个repo。随意在您的项目中使用它并向我发送拉取请求。
【问题讨论】:
-
您在实际的 REAL 测试设备上有哪些 API?不幸的是,我认为它(RippleDrawable)仅适用于 API 21+(Android 5.0,LOLLIPOP)。支持库 21 仍然无法在旧设备上运行。
-
是的,你是对的。我在 API 26 Oreo 上对其进行了测试。如果真正的解决方案适用于 API 14+,那就太好了
-
我想我见过一个可以做到这一点的库,如果我找到了,请回复你。
-
@Cilenco 尝试使用这个 android:background="?android:attr/selectableItemBackground"。如果你对库没问题,请查看android-arsenal.com/tag/167
-
github.com/traex/RippleEffect 库是我测试过的最好的。易于实施和 API 14 +。
标签: android android-drawable android-resources ripple rippledrawable