Android Palette颜色提取
2019独角兽企业重金招聘Python工程师标准>>>
Palette介绍
Palette是Google在5.0中引入的来获取bitmap颜色值的一个工具类,为了兼容以前的版本,所以放在Support v7 Library中,在使用该类之前,需要在gradle中添加引用。Palette顾名思义调色板, Palette的作用是可以从图像中提取图片的颜色。我们可以把提取的颜色融入到App UI中,可以使UI风格更加美观融洽。
Palette可以提取的颜色如下
- Vibrant
- Vibrant Dark
- Vibrant Light
- Muted
- Muted Dark
- Muted Light
通过Palette对象获取到六个样本swatch
Palette.Swatch s = p.getVibrantSwatch(); //获取到充满活力的这种色调
Palette.Swatch s = p.getDarkVibrantSwatch(); //获取充满活力的黑
Palette.Swatch s = p.getLightVibrantSwatch(); //获取充满活力的亮
Palette.Swatch s = p.getMutedSwatch(); //获取柔和的色调
Palette.Swatch s = p.getDarkMutedSwatch(); //获取柔和的黑
Palette.Swatch s = p.getLightMutedSwatch(); //获取柔和的亮
swatch对象对应的颜色方法
- getPopulation(): 像素的数量
- getRgb(): RGB颜色
- getHsl(): HSL颜色
- getBodyTextColor(): 用于内容文本的颜色
- getTitleTextColor(): 标题文本的颜色
集成Palette
在使用该类之前,需要在gradle中添加引用
dependencies {compile 'com.android.support:palette-v7:25.3.0'
}
Palette是一个调色板,通过传入一个bitmap对象来获取一个颜色列表,
首先要获取一个Palette实例,
Palette.from(bitmap).generate()
Palette.generate(bitmap)
Palette.generate(bitmap, mMaxColors)
其中maxColor是颜色值的范围,如果是风景画一般范围在10-16之间,如果是人像的话则范围应增加到24,该值默认为16
示例:
Palette p = Palette.from(convertViewToBitmap(view)).generate();
Palette.Swatch swatch = p.getVibrantSwatch();
if (swatch != null) {tvShow.setBackgroundColor(swatch.getRgb());
}public Bitmap convertViewToBitmap(View view) {view.setDrawingCacheEnabled(true);view.buildDrawingCache();Bitmap bitmap = view.getDrawingCache();return bitmap;
}
这些颜色都有相应的 getter 方法获取。这里要提到一个 Swatch
(样品)类。对 Palette 对象所有颜色相关的操作都可以通过 Swatch 类间接获取。像上面这六种色调,都能通过对应的 Swatch 对象获取到。比如,获取图片主题色,可以直接从 palette 对象中获取:
int color = palette.getDominantColor(ContextCompat.getColor(mContext, R.color.blue));
也可以通过 swatch 对象间接获取:
int color = palette.getDominantSwatch().getRgb();
差别在于,Swatch 对颜色的相关信息做了一个封装处理。通过 Swatch 对象,我们可以获取颜色的 RGB、HSL 等值,和当前颜色在图片中的占比。更重要的一点是,能够获取适合显示在当前颜色背景中的内容色,比如文本标题颜色等。不得不说,Google 想的真周到,并且在源码设计上也是非常独到。
转载于:https://my.oschina.net/ososchina/blog/1789460
Android Palette颜色提取相关推荐
- android palette组件用法,Palette颜色提取使用详解
如果你试过android Lollipop的sdk,你可能注意到了Palette.Palette从图像中提取突出的颜色,这样可以把色值赋给ActionBar.或者其他,可以让界面整个色调统一. 创建P ...
- 主题颜色提取 ——— Palette
Palette 调色板 Palette 是 Android L SDK 中的新特性.可以使用 Palette 从图像中提取出突出的颜色(主色调),获取到颜色之后我们再将这个颜色值赋给 ActionBa ...
- android Palette使用详解
Palette是一个可以从图片(Bitmap)中提取颜色的帮助类,可以使UI更加美观,根据图片动态的显示相应的颜色.现在最新的api是在版本22.0.0添加的,本篇文章也是使用的22.0.0的api版 ...
- android palette组件用法,android Palette使用详解
Palette是一个可以从图片(Bitmap)中提取颜色的帮助类,可以使UI更加美观,根据图片动态的显示相应的颜色.现在最新的api是在版本22.0.0添加的,本篇文章也是使用的22.0.0的api版 ...
- android palette组件用法,Android--Palette基本使用
Palette是一个类似调色板的工具类,根据传入的bitmap,提取出主体颜色,使得图片和颜色更加搭配,界面更协调.Palette 可以从一张图片中提取颜色,我们可以把提取的颜色融入到App UI中, ...
- android palette组件用法,Android Palette(调色板)的使用
一.Palette的简单介绍 android-support-v7-palette 里面的Palette是Android L SDK 中的新特性,可以使用 Palette 从图像中提取出突出的颜色(主 ...
- android palette组件用法,android Palette调色板使用详解
Palette是一个可以从图片(Bitmap)中提取颜色的帮助类,可以使UI更加美观,根据图片动态的显示相应的颜色.现在最新的api是在版本22.0.0添加的,本篇文章也是使用的22.0.0的api版 ...
- android palette view,Android Material Design系列之Palette
今天我们讲的这个Palette非常好用,也非常好玩. Palette的作用是从图像中提取突出的颜色,这样我们可以根据提取到的色值把它赋给Toolbar,标题,状态栏等,可以使我们的整个界面色调统一,效 ...
- Matplotlib科研画图.调色盘颜色提取和更改
Matplotlib科研画图.调色盘颜色提取和更改 #提取调色盘颜色 palette#提取seaborn调色盘颜色 plt.style.use('default') #清空之前调色盘更改 sns.se ...
最新文章
- python turtle画气球-micro:bit + LoRa 实现气球追踪
- 有关贝祖定理的一个小问题
- 创建一个dynamics CRM workflow (三) - Creating Configuration Entity for Custom Workflow
- 【转载】12306铁道部订票网站性能分析
- Python学习(三)基础
- 小程序 input自动换行_直播 | 最实用的微信小程序自动化测试技术独家揭秘
- [置顶] Z-STACK之OSAL_Nv非易失性存储解读上
- 用Visual C++实现远程线程嵌入技术
- Nginx利用nginx_upstream_check_module检查后端健康情况
- java jsp 乱码_JAVA/JSP 中文乱码
- STM32 CANFD 基础知识
- 抽样与抽样分布——中心极限定理、点估计
- 狂神Springboot笔记
- 网红品牌的“敦刻尔克大撤退”
- 用Dual-Thrust策略回测CTA
- 高德地图--- 会动的小汽车(行动轨迹回放)demo效果(整理)
- python3 100例(安安)
- 手写一个淘宝、京东的搜索流式布局FlowLayout
- 【转载】 Android 开发环境下载地址 -- 百度网盘 adt-bundle android-studio sdk adt 下载
- MySQL视频学习笔记
热门文章
- python3 yield_Python3基础 yield 在函数中的用法示例
- jvm面试之 Java内存模型之线程独占部分,线程共享部分,常问问题分析
- Go工程化 - 手摸手带你理解依赖注入
- spl_autoload_register 注册自己的自动加载函数(__autoload())
- nginx upstream 模块详解
- redis专题:数据库和redis缓存一致性解决方案
- centos6.5搭建git服务器 win10 安装git客户端连接 和遇到的问题+解决方式
- linux实用小功能
- Hystrix原理讲解
- fedora16设置root登录