Android5.0水波纹效果实现详解

需积分: 0 0 下载量 187 浏览量 更新于2024-09-01 收藏 140KB PDF 举报
"Android5.0中多种水波纹效果的实现代码" 在Android 5.0(Lollipop)中,引入了一种新的视觉效果——水波纹效果,它为用户界面增添了动态和交互性的触感。水波纹效果通常与触摸反馈相关联,当用户点击或触摸屏幕上的元素时,会出现扩散的波纹效果。本文将详细介绍如何在Android 5.0中实现这两种主要类型的水波纹效果:有界和无界。 1. 有界水波纹实现 有界水波纹效果是指水波纹在特定控件的边界内扩散。例如,如果你想要在TextView上添加这种效果,可以简单地设置其背景为系统提供的可选择项背景属性。以下是实现有界水波纹的XML布局代码示例: ```xml <TextView android:layout_width="match_parent" android:layout_height="56dp" android:layout_centerInParent="true" android:layout_marginTop="36dp" android:background="?android:attr/selectableItemBackground" android:clickable="true" android:gravity="center" android:text="HelloWorld!" /> ``` 在这个例子中,`android:background="?android:attr/selectableItemBackground"`这一行设置了TextView的背景为有界水波纹。当用户点击TextView时,波纹效果将在TextView的区域内显示并逐渐消失。 2. 无界水波纹实现 无界水波纹效果看起来像是不受控件边界限制,但实际上并非完全如此。它会在控件周围扩展得更远,给人一种更加开放的感觉。要实现无界水波纹,只需将背景属性改为`selectableItemBackgroundBorderless`,如下所示: ```xml <TextView android:layout_width="match_parent" android:layout_height="56dp" android:layout_centerInParent="true" android:layout_marginTop="36dp" android:background="?android:attr/selectableItemBackgroundBorderless" android:clickable="true" android:gravity="center" android:text="HelloWorld!" /> ``` 尽管名为“无界”,但无界水波纹仍然会在控件的可见区域内产生,只不过它的边缘处理更加平滑,看起来像是超出了控件的边界。 除了通过系统属性实现水波纹效果外,开发者还可以选择自定义水波纹效果。自定义通常涉及创建自定义View或者使用Shape Drawable和Animation来实现。这种方式虽然较为复杂,但提供了更大的灵活性,可以根据应用的需求调整水波纹的颜色、速度、形状等特性。 总结来说,Android 5.0中的水波纹效果为应用程序带来了更现代、更具吸引力的用户体验。通过系统提供的属性,开发者可以轻松地为TextView、Button等常见控件添加水波纹效果,同时也可以通过自定义实现更多定制化的功能。无论是有界还是无界,水波纹效果都能为Android应用增添生动的交互性。