Material Design系列之Palette详解

Material Design系列之Palette详解

官方文档链接(自备梯子)

Palette:可以在一张图片里面分析出一些色彩特性:主色调、鲜艳的颜色、柔和颜色等

palette可以从图像中提取的颜色:

  • Vibrant (鲜艳的)
  • Vibrant Dark (鲜艳的暗)
  • Vibrant Light (鲜艳的亮)
  • Muted (柔和的)
  • Muted Dark (柔和的暗)
  • Muted Light (柔和的亮)

共有两种创建对象的方式:

    // Synchronous 同步
    Palette p = Palette.from(bitmap).generate();

    // Asynchronous 异步 推荐使用  可能分析的图片会比较大或者颜色分布比较复杂,会耗时比较久,防止卡死主线程
    Palette.from(bitmap).generate(new PaletteAsyncListener() {
          public void onGenerated(Palette p) {
                // Use generated instance
          }
    });

同时也支持Palette.Builder方式构建

palette.png

Palette.Swatch

从palette可以获取到google推荐的颜色样本

palette.getDarkMutedSwatch();
palette.getDarkVibrantSwatch();
...

对应的方法有:

  • public int getBodyTextColor():返回一个合适的颜色,用于显示在这个调色板上的任何“正文”文本。这种颜色保证有足够的对比度。
  • public float[] getHsl():返回这个样本的HSL值. hsv[0]为色相 [0 .. 360); hsv[1]为饱和度 [0...1]; hsv[2]为明度 [0...1]
  • public int getPopulation():这个样本所代表的像素数
  • public int getRgb():这个样本的RGB颜色值
  • public int getTitleTextColor():返回一个适当的颜色用于任何“标题”文本,显示在这个调色板上。这种颜色保证有足够的对比度。

Palette.Builder

构造方法:

Palette.Builder(Bitmap bitmap)
Palette.Builder(List<Palette.Swatch> swatches)//通常只用于测试

对应的其他方法:

  • addFilter(Palette.Filter filter):添加一个过滤器,以便能够对所得到的调色板中允许的颜色进行细粒度控制。
  • clearFilters():清除所有添加的过滤器。这包括任何由调色板自动添加的默认过滤器。
  • generate():同步生成并返回调色板。
  • generate (Palette.PaletteAsyncListener listener):异步生成并返回调色板
  • maximumColorCount (int colors):当使用位图作为源时,设置量化步骤中使用的最大颜色数。
    良好的值取决于源图像类型。对于风景来说,一般在10-16的范围内。对于大部分由人脸构成的图像,这个值应该增加到24或以上。
  • resizeBitmapSize (int maxDimension):调整位图大小,对图片进行缩放。
    这个值对处理时间有很大的影响。调整大小的图像越大,生成调色板所需的时间就越长。图像越小,结果图像中的细节越少,因此颜色选择的精度越低。
    该方法在API级别24.1.0中被剔除,推荐使用resizeBitmapArea(int area)
  • resizeBitmapArea(int area):作用同上一个方法。
  • setRegion(int left, int top, int right, int bottom):在计算调色板时设置选取的位图区域
  • clearRegion()
  • addTarget(Target target):在调色板中添加一个颜色配置文件配置文件
  • clearTargets()

Target

在调色板的自定义颜色的类。通过Target.Builder生成实例。

To use the target, use the addTarget(Target) API when building a Palette。

  • getLightnessWeight():返回目标区域颜色的明亮度所占的权重。
  • getMaximumLightness():最大亮度值
  • getMinimumLightness():最小亮度值
  • getMaximumSaturation():最大饱和度
  • getMinimumSaturation():最小饱和度
  • getPopulationWeight():Returns the weight of importance that this target places on a color's population within the image.(无法准确翻译,见谅)
  • getSaturationWeight():获取饱和度所占的比重
  • getTargetLightness():获取目标明度
  • getTargetSaturation():获取目标饱和度
  • isExclusive():Returns whether any color selected for this target is exclusive for this target only.

Target.Builder

对应上面都有set方法

Github示例代码

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,053评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,527评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,779评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,685评论 1 276
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,699评论 5 366
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,609评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,989评论 3 396
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,654评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,890评论 1 298
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,634评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,716评论 1 330
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,394评论 4 319
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,976评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,950评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,191评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 44,849评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,458评论 2 342

推荐阅读更多精彩内容