GitHub源码

1、 颜色对比

    /** Calculates the constrast between two colors, using the algorithm provided by the WCAG v2. */public static float computeContrastBetweenColors(int bg, int fg) {float bgR = Color.red(bg) / 255f;float bgG = Color.green(bg) / 255f;float bgB = Color.blue(bg) / 255f;bgR = (bgR < 0.03928f) ? bgR / 12.92f : (float) Math.pow((bgR + 0.055f) / 1.055f, 2.4f);bgG = (bgG < 0.03928f) ? bgG / 12.92f : (float) Math.pow((bgG + 0.055f) / 1.055f, 2.4f);bgB = (bgB < 0.03928f) ? bgB / 12.92f : (float) Math.pow((bgB + 0.055f) / 1.055f, 2.4f);float bgL = 0.2126f * bgR + 0.7152f * bgG + 0.0722f * bgB;float fgR = Color.red(fg) / 255f;float fgG = Color.green(fg) / 255f;float fgB = Color.blue(fg) / 255f;fgR = (fgR < 0.03928f) ? fgR / 12.92f : (float) Math.pow((fgR + 0.055f) / 1.055f, 2.4f);fgG = (fgG < 0.03928f) ? fgG / 12.92f : (float) Math.pow((fgG + 0.055f) / 1.055f, 2.4f);fgB = (fgB < 0.03928f) ? fgB / 12.92f : (float) Math.pow((fgB + 0.055f) / 1.055f, 2.4f);float fgL = 0.2126f * fgR + 0.7152f * fgG + 0.0722f * fgB;return Math.abs((fgL + 0.05f) / (bgL + 0.05f));}

使用

isDark = computeContrastBetweenColors(color,Color.WHITE) > 3f;

2、颜色混合

public int blendColor(int fg, int bg) {int scr = Color.red(fg);int scg = Color.green(fg);int scb = Color.blue(fg);int sa = fg >>> 24;int dcr = Color.red(bg);int dcg = Color.green(bg);int dcb = Color.blue(bg);int color_r = dcr * (0xff - sa) / 0xff + scr * sa / 0xff;int color_g = dcg * (0xff - sa) / 0xff + scg * sa / 0xff;int color_b = dcb * (0xff - sa) / 0xff + scb * sa / 0xff;return ((color_r << 16) + (color_g << 8) + color_b) | (0xff000000);
}

Android 颜色操作(对比、混合)相关推荐

  1. 三星note5 android版本区别吗,三星Note5哪种颜色好看?三星Note5四种颜色区别对比图解...

    三星Note5有几种颜色?哪种颜色更好看呢?三星Note5是一款时下非常受欢迎的大屏旗舰手机,搭载Exynos 7422八核处理器,4GB超大内存,配备S Pen触控笔,支持指纹识别等特性,颇受消费者 ...

  2. Android 颜色渲染(九) PorterDuff及Xfermode详解

    Android 颜色渲染(九)  PorterDuff及Xfermode详解 之前已经讲过了除ComposeShader之外Shader的全部子类, 在讲ComposeShader(组合渲染)之前,  ...

  3. 学会这3个Android Studio操作,保你月薪double

    码个蛋(codeegg)第 753次推文 作者: 孙强Jimmy 原文: https://www.jianshu.com/p/0770cde09ede 前言 Android Profiler能够提供关 ...

  4. OpenGL超级宝典笔记——累积缓冲区与其他颜色操作

    2019独角兽企业重金招聘Python工程师标准>>> 累积缓冲区 OpenGL除了颜色缓冲区.深度缓冲区.模板缓冲区之外,还有累积缓冲区.累积缓冲区允许你把渲染到颜色缓冲区的值,拷 ...

  5. android ios 对比 组件_iOS系统和Android系统全面对比

    摘  要 iOS和Android占据当今智能移动终端市场的半壁江山,结合<嵌入式系统>学习的软硬件协同开发等理念,从硬件.软件.用户三个角度进行iOS与Android的比较.其中,硬件选择 ...

  6. Android 数据库操作:Room

    Room 是 Google 官方对 SqliteDatabase 的封装库,本文列举了 Room 数据库组件的基本操作. Room 官方文档:https://developer.android.goo ...

  7. python和R文件IO操作对比及dataframe创建方式对比:read_csv、to_csv、write.csv、 data.frame、pd.DataFrame

    python和R文件IO操作对比及dataframe创建方式对比 很多工程师可能刚开始的时候只熟悉python或者R其中的一个进行数据科学相关的任务. 那么如果我们对比这学习可以快速了解语言设计背后的 ...

  8. Android 文件操作

    Android 文件操作操作时,要赋予相应的权限: <uses-permission android:name="android.permission.WRITE_EXTERNAL_S ...

  9. Android 颜色渲染(五) LinearGradient线性渲染

    版权声明:本文为博主原创文章,未经博主允许不得转载. Android 颜色处理(五) LinearGradient线性渲染 相信很多人都看过歌词同步的效果, 一是竖直方向的滚动,另一方面是水平方面的歌 ...

最新文章

  1. dropout,batch norm 区别 顺序
  2. [MATLAB调试笔记]Update magnetic field in one step
  3. 深度强化学习探索算法最新综述,近200篇文献揭示挑战和未来方向
  4. 简单控制器java,无法找到模板:创建一个简单的控制器和视图
  5. 关于国内部分电子病历编辑器的评价
  6. 阿里云大数据计算服务MaxCompute(上篇)
  7. Andorid之为何要用到NDK?
  8. HTML/CSS基础知识(四)
  9. .NET开发人员必看:提高ASP.NET Web应用性能的24种方法和技巧——转
  10. 我是如何用单例模式征服面试官的?
  11. 字典式攻击及规避方案
  12. 小区物业管理系统c语言,智能小区物业管理系统毕业论文.doc
  13. 路透社:大众与江淮计划在合肥投资50.6亿元建新电动汽车工厂
  14. python复制word全部内容,包括图片、文字、格式
  15. 如何获取微信好友的地理位置信息
  16. python控制画笔尺寸_Python turtle库的画笔控制说明
  17. Qt的QBuffer
  18. java ireport生成pdf_jasperreport 生成pdf实现下载与打印
  19. JDK源码分析 FutureTask源码分析
  20. 数据库 多表 查询练习题

热门文章

  1. 鸿蒙 林蒙什么关系,斗鱼林蒙叫什么 拖米林蒙双排怎么回事
  2. ZeusAutoCode代码生成工具(开源)
  3. 高校学生免费领取阿里云服务器
  4. 【GNN】GCMC:GNN 在推荐系统中的应用
  5. php中argv 的使用,argc与argv怎么在php中使用
  6. apple watch se2 参数 功能介绍 苹果手表se2续航怎么样
  7. 精密光学测量4-光栅曝光
  8. Mininet笔记-基本命令
  9. 初识valgrind
  10. 最轻薄的 5G 手机? — 中兴天机 Axon 10 Pro 评测