目前市场是的大部分App, 都具有个人账户功能吧, 那么当然少不了银行卡这个角色. 银行卡列表背景色若设置成统一的单色调, 那多影响美观. 若我们能把银行logo的主色调当成背景, 那逼格瞬间提升百倍呀!

首先我们要读取logo的主色调, 当然得拿到logo. 这里用到了github上的这位大兄弟抓取的数据, https://github.com/digglife/cnbankcard

那logo不可能全部都放到assets中, 多影响app体积. 个人建议放服务器.

说这么多, 先看看效果图吧.

读取主色调,我这里用到了Palette, Palette其实就是调色板, 能够读取图片的色调, 包含柔和深色的、柔和的明亮、活跃的明亮、活跃的深色…

步骤

导入

你需要在工程下的build.gradle里添加依赖才可以使用Palette,像如下代码所示:

dependencies {compile 'com.android.support:palette-v7:27.1.1'
}

一些api

传入默认颜色防止Palette无法解析到指定颜色种类// 获取到柔和的深色的颜色(可传默认值)palette.getDarkMutedColor(Color.BLUE);// 获取到活跃的深色的颜色(可传默认值)palette.getDarkVibrantColor(Color.BLUE);// 获取到柔和的明亮的颜色(可传默认值)palette.getLightMutedColor(Color.BLUE);// 获取到活跃的明亮的颜色(可传默认值)palette.getLightVibrantColor(Color.BLUE);// 获取图片中最活跃的颜色(也可以说整个图片出现最多的颜色)(可传默认值)palette.getVibrantColor(Color.BLUE);// 获取图片中一个最柔和的颜色(可传默认值)palette.getMutedColor(Color.BLUE);
// ...  这里省略其他的方法。

开始使用

这里我们读取主色调, 什么明亮,柔和的怎么都不是想要的, 所以我这里就取像素点最多的那个色值,

/*** 获取图片主色调** @param bitmap* @return*/public static void getBitmapColor(final Bitmap bitmap, final onBitmapGetColorListener listener) {Palette.from(bitmap).maximumColorCount(10).generate(new Palette.PaletteAsyncListener() {@Overridepublic void onGenerated(@NonNull Palette palette) {List<Palette.Swatch> list = palette.getSwatches();int colorSize = 0;Palette.Swatch maxSwatch = null;for (int i = 0; i < list.size(); i++) {Palette.Swatch swatch = list.get(i);if (swatch != null) {int population = swatch.getPopulation();if (colorSize < population) {colorSize = population;maxSwatch = swatch;}}}if (maxSwatch != null)listener.getColor(maxSwatch.getRgb());}});}

那么到此颜色值获取了,直接设置背景就好了.

其他

Palatte还可以和ViewGroup和Fragment搭配使用, 也是非常美观的, 盗个图片

更多精彩文章, 请前往>>http://blog.huiger.top

银行卡列表之背景颜色自动识别相关推荐

  1. pycharm2017.2.1中的修改工程文见列表的名字的字体大小以及文件列表的背景颜色

    首先在setting中找到Color Scheme 然后看到主题后,如图中选择Duplicate,这样才可以编辑其他地方的字体大小,否则没法编辑 下面开始编辑 修改左侧文件列表的背景颜色 settin ...

  2. LabVIEW多列列表框背景颜色操作

    多列列表框 概述 在很多情况下我们需要在表格中某一列查找一些指定的元素,并且想让其显示为指定的颜色,此时就可以利用多列列表框的一些属性来解决这一问题. 知识点讲解 1. 在多列列表框中显示数据 1) ...

  3. Vue写银行卡根据不同的银行卡名称显示不同的背景颜色和图标

    1.根据银行卡名称改变背景颜色: (1).步骤一: (2).步骤二:注意:在data里面写下面的obj (3).步骤三:自己根据需要设置CSS样式 2.根据银行卡名称改变对应图标: (1).步骤一: ...

  4. 设置ListCtrl列表控件其中某一行的字体和背景颜色

    设置ListCtrl列表控件其中某一行的字体和背景颜色,可以最终达到如下效果: 操作步骤如下所示: 1.先添加一个自定义消息 ON_NOTIFY ( NM_CUSTOMDRAW,IDC_V_H264_ ...

  5. css的背景颜色有哪些,css背景颜色、背景图片,以及列表的多种样式

    背景样式 • background-color 设置元素的背景颜色. • background-image 把图像设置为背景. • background-position 设置背景图像的起始位置. • ...

  6. Vue卡列表中不同卡片显示不同背景颜色

    Vue卡列表中不同卡片显示不同背景颜色 最近做一个项目的移动端页面,需要完成一个卡列表,不同银行显示不同颜色的问题,一开始考虑过通过识别银行图标色调生成,但最后为了考虑开发成本,只做几种通用的色调. ...

  7. html表格背景图片格式,css背景颜色、背景图片,以及列表的多种样式

    背景样式 • background-color 设置元素的背景颜色. • background-image 把图像设置为背景. • background-position 设置背景图像的起始位置. • ...

  8. VC/MFC如何设置对话框背景颜色

    方法一:调用CWinApp类的成员函数SetDialogBkColor来实现.  (这个函数已经废弃) ? 1 void SetDialogBkColor(COLORREF clrCtlBk = RG ...

  9. div没有设置高度,背景颜色却无法显示

    在设计网页时,设置了div为自动高度或不给height值,当div设置背景时在IE6可以显示背景颜色,但是IE7,8却不显示. 解决办法如下: 1.把 height:auto; 改成 height:1 ...

最新文章

  1. java 初始化一个实体对象_Java 对象初始化
  2. Java多线程中的死锁问题
  3. java实现接收字符串对象并在后台代码中转成list对象
  4. 怎么使用config?
  5. 贪婪算法在求解最小生成树中的应用(JAVA)--Kruskal算法
  6. 使用Css隐藏超出容器宽度的文字,溢出部分用“...”表示
  7. python pytz下载_使用 pytz 处理 Python 中的时区问题
  8. 关系数据库规范化理论
  9. MCU学习——无线遥控模块
  10. android 获取控件在屏幕中位置
  11. python将图片表情包转化成字符
  12. PHP,$this-{$xxx} 是什么意思?
  13. Qt5对Excel表格简单、高效处理方法
  14. limbo运行veket linux,Veket——『350M』的操作系统,五脏俱全全到可怕!
  15. Brave浏览器 1.0正式面世, 为用户提供无与伦比的隐私保护和奖励
  16. layout_constraintWidth_percent in java
  17. 第十三届蓝桥杯B组python(试题A:排列字母)
  18. 徐小湛概率论与数理统计课件_概率论与数理统计-徐小湛-视频教程70讲
  19. 数据通信基础 - 信道特性(奈奎斯特定理、香农定理 )
  20. 渲染和不渲染的区别是什么?

热门文章

  1. 又因明星婚恋,微博瘫痪了
  2. 自媒体人平台运营保姆级教程!速看!
  3. 简单且强大的PHP调试工具 Kint
  4. 时序收敛以及 synplify 技巧timing constraint
  5. 【空间计量经济学】中国31省省会地理距离矩阵
  6. FTP-DropBox
  7. 遨博协作机器人ROS开发 - 遨博E5 DH参数SolidWorks建模
  8. Apache2.2+PHP5.3+MySql5.5上构建EyeOS2.5
  9. elasticsearch ik pingyin 分词器的安装和使用
  10. 网页上传至服务器失败,网页上传到云服务器失败