ripple水波纹 和 Palette调色板 了解

ripple 水波纹

5.0之后按钮会自带水波纹效果,但是颜色是固定的。而且如果给按钮设置了背景后,水波纹效果就没了
如何给按钮添加自己想要的背景,还要有水波纹效果,还要能够定义水波纹颜色呢?
首先创建正常的背景xml文件:

此处输入图片的描述
此处输入图片的描述

然后在res下创建drawable-v21,在里面创建相同的xml文件,然后修改内容如下,添加ripple节点。

ripple节点只能在5.0以后使用,所以需要在drawable-v21里面定义

此处输入图片的描述
此处输入图片的描述

此处输入图片的描述
此处输入图片的描述

最终效果图:

此处输入图片的描述
此处输入图片的描述
  • 第一个按钮是添加了水波纹并且自定义颜色后的
  • 第二个是普通定义背景颜色的(此时没有水波纹效果)
  • 第三个是默认的没有添加背景的,会自动添加默认效果

也可以使用系统提供的背景(两种效果,第一种有边界,第二种没有):

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

Palette 调色板

可以从图片当中提取颜色,先记录下使用方法:

 // 根据上一个界面传入的图片资源 ID,获取图片的 Bitmap 对象。
Bitmap bitmap = BitmapFactory.decodeResource(getResources(), mImgs[position]);
// 创建一个 Pallette 对象
Palette palette = Palette.from(bitmap).generate();
// 提取对应颜色
int color = palette.getVibrantColor(ContextCompat.getColor(this, android.R.color.darker_gray));

可以获取的颜色分类:

  • Vibrant (有活力的)
  • Vibrant dark(有活力的 暗色)
  • Vibrant light(有活力的 亮色)
  • Muted (柔和的)
  • Muted dark(柔和的 暗色)
  • Muted light(柔和的 亮色)

效果如下:


此处输入图片的描述
此处输入图片的描述

更多文章欢迎访问我的博客:https://leonhua.github.io/

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 175,702评论 25 709
  • 作者:李旺成### 时间:2016年4月14日### 接上篇 AndroidStudyDemo 之 Android...
    diygreen阅读 10,629评论 9 82
  • 1. 第一重:君生,我未生。 屏幕中的黎明明显老了。曾紧致有型的脸颊松弛了,眼尾的皱纹清晰可见。在影片开头,饰演蜀...
    冰融阅读 5,745评论 3 6
  • 一条三米宽的水泥路伸到一个小山村里。 春天来的时候,路两旁的油菜花金黄金黄的,风一吹一浪子一浪子的向路上涌着,空气...
    十三叉阅读 3,709评论 1 1
  • 今年二月,我没回家,留在上海,过一个人的春节,十天。 最后一天,我食物中毒。 夜里,我爬起来,昏天黑地地吐,爬回房...
    简浅Jian阅读 2,325评论 3 4