开发者社区> 一叶飘舟> 正文

Android 5.0+ 自定义普通按钮的ripple波纹效果

简介:
+关注继续查看

Android 5.0中新增了ripple类型,即波纹效果

在res中添加一个新的文件夹drawable-v21,用于保存波纹效果

button_ripple_orange.xml

[html] view plain copy
  1. <?xml version="1.0" encoding="utf-8"?>  
  2. <ripple xmlns:android="http://schemas.android.com/apk/res/android"  
  3.     android:color="#FFEEEEEE">  
  4.   
  5.     <item android:drawable="@drawable/button_bg_orange" />  
  6.   
  7. </ripple>  

ripple相当于layer-list层叠效果,ripple元素的color属性即指定了波纹效果的颜色,但必须是8位颜色代码值,前两位指定了波纹的透明度,后六位即波纹颜色,以黑色000000及白色FFFFFF效果最为明显

<item android:drawable="@drawable/button_bg_orange" />即指定了按钮的正常状态的显示效果

button_bg_orange.xml

[html] view plain copy
  1. <?xml version="1.0" encoding="utf-8"?>  
  2. <shape xmlns:android="http://schemas.android.com/apk/res/android"  
  3.     android:shape="rectangle">  
  4.   
  5.     <corners android:radius="@dimen/button_corner_radius" />  
  6.     <solid android:color="@color/theme" />  
  7.   
  8. </shape>  
将button_ripple_orange设置为按钮Background即可在按钮上实现点击波纹效果,但必须是API 21以上版本

如果只是普通的波纹效果,当你使用了Material主题后,波纹动画会自动应用在所有的控件上,也可以自己来设置其属性来调整到我们需要的效果。


可以通过如下代码设置波纹的背景:

android:background="?android:attr/selectableItemBackground"波纹有边界

android:background="?android:attr/selectableItemBackgroundBorderless"波纹超出边界

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
RK356X Android 11 增加自定义系统服务调用失败
RK356X Android 11 增加自定义系统服务调用失败
67 0
Android Spinner与自定义TextView填坑记
Android Spinner与自定义TextView填坑记
19 0
Android Settings,SourceSet,自定义Plugin
Android Settings,SourceSet,自定义Plugin
21 0
Android Studio4.1无法创建自定义模板的坑
Android Studio4.1无法创建自定义模板的坑
63 0
Android绘制竖直虚线完美解决方案—自定义View
开发中我们经常会遇到绘制虚线的需求,一般我们使用一个drawable文件即可实现,下面我会先列举常规drawable文件的实现方式。
400 0
Android自定义View水波纹
Android自定义View水波纹
59 0
Android自定义控件(十一)——自定义ViewGroup实现LinearLayout
Android自定义控件(十一)——自定义ViewGroup实现LinearLayout
107 0
【安卓开发】Android中自定义软键盘的使用
【安卓开发】Android中自定义软键盘的使用
96 0
看清安卓自定义view中触摸事件的“盲区”
今天的工作仍然在思考自定义view,因为需要调服务器接口,而这需要一些参数去其他地方拿,不在我调自定义view的页面,所以我希望能封装好这个自定义view,对外只要开放相应监听接口即可
28 0
+关注
一叶飘舟
文章
问答
视频
文章排行榜
最热
最新
相关电子书
更多
Android组件化实现
立即下载
蚂蚁聚宝Android秒级编译—— Freeline
立即下载
Android开发之多进程架构
立即下载