您的位置:首页 > 移动开发 > Android开发

ripple水波纹 和 Palette调色板 了解

2017-03-14 09:30 211 查看

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(柔和的 亮色)

效果如下:

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  android-5-0 ripple palette