Palette(调色板)
利用Palette库来取得图片中的主要色彩
使用这个Android的开源库android-support-v7-palette。
流程:
得到一个bitmap,通过方法进行分析,取出LightVibrantSwatch,DarkVibrantSwatch,LightMutedSwatch,DarkMutedSwatch这些样本,然后得到rgb。Palette这个类中提取以下突出的颜色:
Vibrant (有活力)
Vibrant dark(有活力 暗色)
Vibrant light(有活力 亮色)
Muted (柔和)
Muted dark(柔和 暗色)
Muted light(柔和 亮色)- 创建方法
//目标bitmapBitmap bm =BitmapFactory.decodeResource(getResources(),R.drawable.kale);//方法1Palette.Builder builder = Palette.from(bm);Palette palette=builder.generate();//方法2 使用异步builder.generate(bitmap, new Palette.PaletteAsyncListener() { @Override public void onGenerated(Palette palette) { // Here's your generated palette}
Palette palette=Palette.generate() 等方法直接废弃掉了
使用样本(swatch)
创建完一个实例之后,我们还需要得到一种采集的样本(swatch),有6中样本(swatch):
Palette.getVibrantSwatch()
Palette.getDarkVibrantSwatch()
Palette.getLightVibrantSwatch()
Palette.getMutedSwatch()
Palette.getDarkMutedSwatch()
Palette.getLightMutedSwatch()
List
getPopulation(): the amount of pixels which this swatch represents.
getRgb(): the RGB value of this color.
getHsl(): the HSL value of this color.
getBodyTextColor(): the RGB value of a text color which can be displayed on top of this color.
getTitleTextColor(): the RGB value of a text color which can be displayed on top of this color.
比如如果你的TextView 有个背景图片,要想让字体颜色能够和背景图片匹配,则使用getBodyTextColor()比较合适,getTitleTextColor()其实应该和getBodyTextColor()差不多
- Size问题
在上面的代码中,你可能注意到了可以设置palette的size。size越大,花费的时间越长,而越小,可以选择的色彩也越小。最佳的选择是根据image的用途:- 头像之类的,size最好在24-32之间;
- 风景大图之类的 size差不多在8-16;
- 默认是16.
- 使用代码
Bitmap bm = BitmapFactory.decodeResource(getResources(),R.drawable.kale);Palette palette = Palette.generate(bm);if (palette.getLightVibrantSwatch() != null) {//需要注意的是`getVibrantSwatch()可能会返回一个null值,所以检查一下是必须的。//得到不同的样本,设置给imageview进行显示iv.setBackgroundColor(palette.getLightVibrantSwatch().getRgb());iv1.setBackgroundColor(palette.getDarkVibrantSwatch().getRgb());iv2.setBackgroundColor(palette.getLightMutedSwatch().getRgb());iv3.setBackgroundColor(palette.getDarkMutedSwatch().getRgb());}
Palette(调色板)相关推荐
- android palette组件用法,android Palette调色板使用详解
Palette是一个可以从图片(Bitmap)中提取颜色的帮助类,可以使UI更加美观,根据图片动态的显示相应的颜色.现在最新的api是在版本22.0.0添加的,本篇文章也是使用的22.0.0的api版 ...
- Palette调色板
一.什么是Palette 1.Palette:可以在一张图片里面分析出一些色彩特性:主色调.鲜艳的颜色.柔和颜色等等--比如: 引入v7里面的一个单独项目Palette: android.suppor ...
- 【Android+Kotlin】自适应CoordinatorLayout,AppBarLayout,CollapsingToolbarLayout与Palette
参考文档 CoordinatorLayout 完全解析 1.1 关于NestedScrollingParent2.NestedScrollingChild2接口目的 支持滑动嵌套类的父布局 这篇文的d ...
- 主题颜色提取 ——— Palette
Palette 调色板 Palette 是 Android L SDK 中的新特性.可以使用 Palette 从图像中提取出突出的颜色(主色调),获取到颜色之后我们再将这个颜色值赋给 ActionBa ...
- Android 5.0 调色 Palette调色功能
Palette非常好用,也非常好玩. Palette的作用是从图像中提取突出的颜色,这样我们可以根据提取到的色值把它赋给Toolbar,标题,状态栏等,可以使我们的整个界面色调统一,效果非常好看. P ...
- 30_Palette调色板
Android基础汇总 #1 原理: Palette是一个类似调色板的工具类,根据传入的bitmap,提取出主体颜色,使得图片和颜色更加搭配,界面更协调. Palette 可以从一张图片中提取颜色,我 ...
- PowerDesigner palette 工具栏不见了,怎么找回
Tools(工具栏)--customsize toolbars(自定义工具栏) palette(调色板)勾选:
- android palette组件用法,Android Material Design:使用Palette优化界面色彩搭配。
我写过一篇博客介绍了常用Material Design控件的使用. http://www.jianshu.com/p/776cc6329fff 本想把大部分的Material Design的知识点写到 ...
- android palette组件用法,Android--Palette基本使用
Palette是一个类似调色板的工具类,根据传入的bitmap,提取出主体颜色,使得图片和颜色更加搭配,界面更协调.Palette 可以从一张图片中提取颜色,我们可以把提取的颜色融入到App UI中, ...
- 使用Palette优化界面色彩搭配 Jetpack
Palette 动态获取图片的某种颜色.作用请看下面动图 没有添加笔记 ,直接查看 原文:https://www.jianshu.com/p/dfa9aac6143d 我写过一篇博客介绍了常用Mate ...
最新文章
- 心得体悟帖---18、时间
- 第14章 结构和其他数据形式 14.12 typedef 简介
- 为什么说 Serverless 引领云的下一个十年?
- python 三元运算符求abc_python三元运算符实现方法
- 推荐 | 8 个 SpringBoot 精选项目
- python中lambda的使用
- 【算法设计】最大子矩阵问题
- 读书笔记:《人工智能》
- MCS-51的存储器结构
- ArcGIS为什么计算面积被禁用
- shell美元符_Linux Shell中的美元符号$ | 学步园
- node静态服务器tudo
- sharelist+RaiDriver将阿里云盘映射到本地磁盘
- 如果用户没上传头像,则为其设置默认用户头像
- mark mark mark
- 数字藏品交易平台开发 数字藏品交易网站开发
- JS日期格式转换时间戳,时间戳转换日期,获取当前天23:59:59,时间戳判断是否是今天
- 线性函数,C语言方式实现
- QT项目练习--砍多多校园二手交易平台(C++)
- 自定义LinearLayout实现淘宝详情页
热门文章
- 干货 | PCB电路板短路了!试试这六种检查方法
- vuedraggable实现组件拖拽,页面生成器?
- 【武汉加油!中国加油!】挑战七天 实现机器视觉检测有没有戴口罩系统——第一二三天
- fd证书无法导出_fd安装浏览器证书
- English trip M1 - AC11 May I Help You? 我能帮到你吗? Teacher:Lamb
- 为什么我们依然觉得AI换脸很“假”?
- 如何让学好计算机专业 李开复
- Python Wechaty 微信聊天机器人 padlocal协议搭建指南
- dockerfile制作自定义字体的java环境镜像
- 区块链加持,鉴定溯源双保险,科技赋能茅台老酒成零售数字化标杆