Android基础汇总

#1 原理:
Palette是一个类似调色板的工具类,根据传入的bitmap,提取出主体颜色,使得图片和颜色更加搭配,界面更协调。
Palette 可以从一张图片中提取颜色,我们可以把提取的颜色融入到App UI中,可以使UI风格更加美观融洽。比如,我们可以从图片中提取颜色设置给ActionBar做背景颜色,这样ActionBar的颜色就会随着显示图片的变化而变化。通俗的说,就是从一张图片中获取不同风格的源于图片的颜色
#2 效果图
#3 使用
1 compile 'com.android.support:palette-v7:23.4.0'
Palette可以提取的颜色如下:
● Vibrant (有活力的)
● Vibrant dark(有活力的 暗色)
● Vibrant light(有活力的 亮色)
● Muted (柔和的)
● Muted dark(柔和的 暗色)
● Muted light(柔和的 亮色)
第一步 compile 'com.android.support:palette-v7:23.4.0'
第一步,我们需要通过一个Bitmap对象来生成一个对应的Palette对象。 Palette 提供了四个静态方法用来生成对象。
● Palette generate(Bitmap bitmap)
● Palette generate(Bitmap bitmap, int numColors)
● generateAsync(Bitmap bitmap, PaletteAsyncListener listener)
● generateAsync(Bitmap bitmap, int numColors, final PaletteAsyncListener listener)
不难看出,生成方法分为generate(同步)和generateAsync(异步)两种,如果图片过大使用generate方法,可能会阻塞主线程,我们更倾向于使用generateAsync的方法,其实内部就是创建了一个AsyncTask。generateAsync方法需要一个PaletteAsyncListener对象用于监听生成完毕的回调。除了必须的Bitmap参数外,还可以传入一个numColors参数指定颜色数,默认是 16。
第二步,得到Palette对象后,就可以拿到提取到的颜色值
● Palette.getVibrantSwatch()
● Palette.getDarkVibrantSwatch()
● Palette.getLightVibrantSwatch()
● Palette.getMutedSwatch()
● Palette.getDarkMutedSwatch()
● Palette.getLightMutedSwatch()
第三步,使用颜色,上面get方法中返回的是一个 Swatch 样本对象,这个样本对象是Palette的一个内部类,它提供了一些获取最终颜色的方法。
● getPopulation(): 样本中的像素数量
● getRgb(): 颜色的RBG值
● getHsl(): 颜色的HSL值
● getBodyTextColor(): 主体文字的颜色值
● getTitleTextColor(): 标题文字的颜色值
通过 getRgb() 可以得到最终的颜色值并应用到UI中。getBodyTextColor() 和 getTitleTextColor() 可以得到此颜色下文字适合的颜色,这样很方便我们设置文字的颜色,使文字看起来更加舒服。
#4 Demo:
t1 = (TextView) findViewById(R.id. t1);
t2 = (TextView) findViewById(R.id. t2);
t3 = (TextView) findViewById(R.id. t3);
t4 = (TextView) findViewById(R.id. t4);
t5 = (TextView) findViewById(R.id. t5);
t6 = (TextView) findViewById(R.id. t6);
Bitmap bitmap = BitmapFactory. decodeResource(getResources(), R.drawable. f);
Palette. from(bitmap).generate( new Palette.PaletteAsyncListener() {
//发生主线程 Palette调色板 总共六种颜色
@Override
public void onGenerated(Palette palette) {
//柔和而暗的颜色
int darkMutedColor= palette.getDarkMutedColor(Color. BLUE);
//鲜艳和暗的颜色
int darkVibrantColor= palette.getDarkVibrantColor(Color. BLUE);
//亮和鲜艳的颜色
int lightVibrantColor=palette.getLightVibrantColor(Color. BLUE);
//亮和柔和的颜色
int lightMutedColor=palette.getLightMutedColor(Color. BLUE);
//柔和颜色
int mutedColor=palette.getMutedColor(Color. BLUE);
int vibrantColor=palette.getVibrantColor(Color. BLUE);
t1.setBackgroundColor(darkMutedColor);
t2.setBackgroundColor(darkVibrantColor);
t3.setBackgroundColor(lightVibrantColor);
t4.setBackgroundColor(lightMutedColor);
t5.setBackgroundColor(mutedColor);
t6.setBackgroundColor(vibrantColor);
#4 效果
原始图片
效果图

30_Palette调色板相关推荐

  1. CSS单位分析及CSS颜色表示法、颜色表(调色板)

    CSS单位主要分析em.rem.fr这三个较难理解的单位吧,平常的px.%.cm那些就不谈了嘛. px在不同场景之下为同样的值,我们把它称作绝对单位,而em和rem受外部因素的影响下而改变,因此称作相 ...

  2. 使用Python,Opencv绘制调色板及圆形来模拟霓虹的渐变效果

    使用Python,Opencv绘制调色板及圆形来模拟霓虹的渐变效果 1. 效果图 2. 源码 参考 这篇博客将使用python,opencv绘制调色板及圆形来模拟霓虹的渐变效果. 1. 效果图 可以构 ...

  3. 创建属于自己的调色板

    本文转载自"R语言中文社区",已获授权. 作者简介Introduction taoyan:R语言中文社区特约作家,伪码农,R语言爱好者,爱开源. 个人博客: https://ytl ...

  4. Python在Seaborn中手动指定调色板颜色进行数据可视化颜色自定义实战(Manually Specify Palette Colors in Seaborn)

    Python在Seaborn中手动指定调色板颜色进行数据可视化颜色自定义实战(Manually Specify Palette Colors in Seaborn) 目录

  5. R语言使用ggplot2包使用geom_density()函数绘制分组密度图(自定义调色板、brewer、灰度比例)实战(density plot)

    R语言使用ggplot2包使用geom_density()函数绘制分组密度图(自定义调色板.brewer.灰度比例)实战(density plot) 目录 R语言使用ggplot2包使用geom_de ...

  6. R语言使用treemap包中的treemap函数可视化treemap图:treemap将分层数据显示为一组嵌套矩形、自定义设置treemap图的调色板、自定义设置treemap标题字体的大小

    R语言使用treemap包中的treemap函数可视化treemap图:treemap将分层数据显示为一组嵌套矩形.自定义设置treemap图的调色板.自定义设置treemap标题字体的大小 目录

  7. R语言使用ggplot2包使用geom_boxplot函数绘制基础分组箱图(分组箱体框颜色调色板配置)实战

    R语言使用ggplot2包使用geom_boxplot函数绘制基础分组箱图(分组箱体框颜色调色板配置)实战 目录 R语言使用ggplot2包使用geom_boxplot函数绘制基础分组箱图(分组箱体框 ...

  8. R语言使用ggpubr包的ggbarplot函数可视化水平偏差条形图(计算数值的z-score、自定义填充色、自定义条形边缘色、自定义调色板、条形图全局排序从小到大、文本标签角度、添加图例标签、轴标签

    R语言使用ggpubr包的ggbarplot函数可视化水平偏差条形图(计算数值的z-score.自定义填充色.自定义条形边缘色.自定义调色板.条形图全局排序从小到大.文本标签角度.添加图例标签.轴标签 ...

  9. seaborn使用boxplot函数进行箱图可视化(使用色彩调色板自定义设置箱图的颜色、在boxplot函数内设置palette参数自定义调色板)

    seaborn使用boxplot函数进行箱图可视化(使用色彩调色板自定义设置箱图的颜色.在boxplot函数内设置palette参数自定义调色板) 目录

最新文章

  1. php如何从左往右轮播,js实现从左向右滑动式轮播图效果
  2. 辨析*P++,*(p++),*(++p),++(*p),*(P--),*(--P)
  3. Seafile 1.3 发布,文件同步和协作平台
  4. script地下状态栏效果
  5. arm-linux-androideabi-addr2line
  6. 区块链 不可能三角是什么
  7. 何为全栈工程师?你是否应该成为一名全栈工程师?
  8. IntelliJ IDEA常用快捷键
  9. iOS开发1小时快速入门
  10. Guice 的工作原理
  11. 基于udp端口转发程序设计(一)
  12. ai作文批改_网易有道词典再推AI作文批改新功能
  13. Relay和Rendezvous
  14. android api 和版本对应表汇总
  15. 2020牛客暑期多校训练营(第九场)F.Groundhog Looking Dowdy
  16. ios VM snapshot invalid and could not be inferred from settings
  17. (非常实用)局部解剖学重点
  18. c语言五子棋游戏心得体会,下五子棋执白子之心得
  19. 【云速建站】购买前的指导
  20. Android Studio3.0没有Launch Standalone SDK Manager

热门文章

  1. ROS-PCL-读写点云PCD文件
  2. 历年真题自考c语言,C 自考历年真题小集.docx
  3. cf计算机中丢失msvcp100,CF修复dll文件工具
  4. 操作系统真相还原学习笔记
  5. dfuse 与 EOS Nation 推出官方 dfuse 社区版服务
  6. 中小医院信息系统的安全管理
  7. 蒙文计算机,蒙古文整词计算机生成理论研究
  8. linux达芬奇安装教程,达芬奇Davinci Resolve安装到Centos8系统配置|详细教程
  9. Leetcode 第1342题:将数字变成 0 的操作次数 (位运算解题法详解)
  10. 羊皮卷——人生的财富