Android5.0水波纹效果实现详解
需积分: 0 78 浏览量
更新于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应用增添生动的交互性。
122 浏览量
点击了解资源详情
110 浏览量
168 浏览量
2015-04-28 上传
2014-11-14 上传
2018-12-06 上传
2017-05-09 上传
124 浏览量
weixin_38734276
- 粉丝: 11
- 资源: 901
最新资源
- Simple_scraper
- 行销导向式服务的认识PPT
- Elearning:在线学习
- gradle-4.10.1-all文件夹.rar
- ImageJ-Tools:核分割和比例定量
- android_magic_conch_shell:电视节目Spongebob Squarepants中的Magic Conch Shell的Android应用程序
- finiki:Finiki-以旧换新
- 井字游戏:井字游戏
- Qex Studio:从 BIM 模型创建预算-开源
- Autojs调用zxing实现扫码功能
- crud-surittec:CRUD Paraavaliaçãopela empresa Surittec
- opencv_python-3.4.4.19-cp35-cp35m-linux_armv7l.zip
- image-preloadr:将图像数组预加载到body元素底部的dom
- Praktyki2GG:Nowe repo bo tamtebyłosłabeD
- LinearAlgebra:线性代数简介的注释和python代码
- e-commerce:带有Commerce.js和Stripe.js的电子商务应用程序