Android开发之palette的使用(安卓调色板)
来源:互联网 发布:java array length 编辑:程序博客网 时间:2024/06/14 22:13
前言:随着UI的丰富性,每当我们切换的时候,都需要一个主色调,这个时候我们可以用Palette来去提取UI中的主色调,一般都是从Bitmap中提取颜色,然后把颜色设置给title,content等!
------------------------------分割线--------------------------
使用:首先通过imageview获取Drawable,然后在获取Bitmap。
BitmapDrawable drawable = (BitmapDrawable) imageView.getDrawable(); Bitmap bitmap = drawable.getBitmap();Palette是v7包下的拓展类首先添加依赖:
compile 'com.android.support:palette-v7:26.0.0-alpha1'接着我们使用Palette分析bitmap,我们分析图片的时候,图片可能会比较大,或者颜色比较复杂,所以为了防止主线程阻塞,我们使用google给我们提供的异步来解决:
Palette.from(bitmap).generate(new Palette.PaletteAsyncListener() { @Override public void onGenerated(Palette palette) { } });Palette提供了很多api来设置颜色,来我们看一下常用api的用法:
1.获取某种特性颜色的样品:
Palette.Swatch lightVibrantSwatch = palette.getLightVibrantSwatch();Palette.Swatch vibrantSwatch = palette.getVibrantSwatch();2.获取google推荐的整体颜色的rgb值--主色调(这里我们使用的是vibrantSwatch)
int rgb = vibrantSwatch.getRgb();3.获取google推荐的标题的颜色:
int titleTextColor = vibrantSwatch.getTitleTextColor();4.颜色向量:
float[] hsl = vibrantSwatch.getHsl();5.分析该颜色在图片中所占的像素多少值:
int population = vibrantSwatch.getPopulation();
6.在实际使用的时候我们也可以仅仅使用颜色的rgb来设置背景色,然后在添加一个透明度protected int getTranslucentColor(float percent, int rgb) { int blue = Color.blue(rgb); int green = Color.green(rgb); int red = Color.red(rgb); int alpha = Color.alpha(rgb); alpha = Math.round(alpha * percent); return Color.argb(alpha, red, green, blue); }7.给标题设置背景色:
tvTtle.setBackgroundColor(getTranslucentColor(0.6f, rgb));8.给标题字体设置颜色:
tvTtle.setTextColor(titleTextColor);ok!来我们看一下效果图:
----------------------------分割线--------------------------------------
当然了,我们也可以自定义显示的颜色样式!
1.暗、柔和(Color.BLUE是默认颜色,下面同):
int darkMutedColor = palette.getDarkMutedColor(Color.BLUE);2.亮、柔和:
int lightMutedColor = palette.getLightMutedColor(Color.BLUE);
3.暗、鲜艳:
int darkVibrantColor = palette.getDarkVibrantColor(Color.BLUE);
4.亮、鲜艳:
int lightVibrantColor = palette.getLightVibrantColor(Color.BLUE);
5.柔和:
int mutedColor = palette.getMutedColor(Color.BLUE);
6.鲜艳:
int vibrantColor = palette.getVibrantColor(Color.BLUE);。。。
效果图就不和大家展示了,自己试着去实现一下!
----------------------------结束!!!------------------------------------------------
阅读全文
0 0
- Android开发之palette的使用(安卓调色板)
- Android Palette 调色板 的使用
- 安卓Palette调色板
- Android学习之5.0三姐妹调色板palette的使用
- Palette调色板的使用
- android Palette调色板的使用方法
- android 控件 调色板 Palette
- palette调色板初级使用
- Palette调色板的演示
- 安卓Palette(颜色拾取)的使用
- Android Study Material Design 八 之 玩转Palette调色板
- android5.x之Palette调色板
- 使用 Palette 提取图片调色板
- V7兼容包——调色板Palette的使用
- Palette调色板
- Palette调色板
- Material Design设计之Palette调色板
- 使用调色板Palette在背景图中取色
- scikit-learn决策树学习
- 中文分词技术介绍
- 指针
- |BZOJ 4196|树链剖分|线段树|[Noi2015]软件包管理器
- 2017.5.18-24 基站选址 失败总结
- Android开发之palette的使用(安卓调色板)
- 希尔排序的实现
- HDU 1025 Constructing Roads In JGShining's Kingdom(最长递增子序列)
- 恶补前端知识之——CSS(一)
- 开源NLP工具(包括分词工具)
- [leetcode]: 202. Happy Number
- javac的使用
- JavaScript变量和作用域
- C++排序算法之选择排序