Android 颜色渲染(二) 颜色区域划分原理与实现思路

版权声明:本文为博主原创文章,未经博主允许不得转载。

上一篇讲到颜色选择器,该demo不能选择黑白或者具体区间颜色,这是为什么呢,还是要从原理部分讲起,首先看一下两张图:

           图1                   图2

看一下这两张图,有什么相似的地方么,其实在第二张图中已经标记地很明显了,无论这个选择器以什么样的图形展现,是圆形选择器也好,线性或者画板选择器也好,其实都是由七种颜色进行组成:

R,RG,G,GB,B,BR,R

它们对应的进制颜色值为 0xFFFF0000, 0xFFFF00FF, 0xFF0000FF, 0xFF00FFFF, 0xFF00FF00, 0xFFFFFF00, 0xFFFF0000

看到这个值我们是不是很熟悉,在apidemos中图1 所示的渐变色圆环怎么初始化的呢:

[java] view plain copy

  1. mColors = new int[] {//渐变色数组
  2. 0xFFFF0000, 0xFFFF00FF, 0xFF0000FF, 0xFF00FFFF, 0xFF00FF00,
  3. 0xFFFFFF00, 0xFFFF0000
  4. };

没错,实际上这个渐变色圆环也是由这七段颜色组成,所以这个demo是没办法选择黑白色的

怎么加入黑白色呢,这里我说下大概思路:

1.   首先要有黑白渐变的参数: 0xFF000000,0xFFFFFFFF

2.  绘制圆环或者颜色板时留出黑白色块区域单独进行绘制

图3

再看一张图:

图4

这张七彩图又有了一种模糊的感觉,这种效果又是怎么实现的呢,相信很多人已经猜到了,这种效果就是图2和图3综合绘制出来的图形(正常七段颜色图加上黑白颜色渐变)

其实关于颜色选择器呢,最经典的还是在PS 中的调色板应用,这里我只是做一些简单的原理性描述,

有想深入研究的童鞋,可以看下 Wiki百科上关于RGB,  HSL和HSV色彩空间的介绍. 以及AS3调色板算法, 相信会对颜色处理方面有很大的帮助,

以下附上对应的链接:

维基百科:

三原色光模型:

http://zh.wikipedia.org/wiki/RGB

HSL和HSV色彩空间:

http://zh.wikipedia.org/wiki/HSV%E8%89%B2%E5%BD%A9%E5%B1%9E%E6%80%A7%E6%A8%A1%E5%BC%8F

AS3调色板算法:

http://hi.baidu.com/weiwei6699/item/ae1551d770601c14d90e448d

时间: 2024-10-13 08:07:57

Android 颜色渲染(二) 颜色区域划分原理与实现思路的相关文章

Android 颜色渲染(一) 颜色选择器 ColorPickerDialog剖析

版权声明:本文为博主原创文章,未经博主允许不得转载. Android 颜色选择器之ColorPickerDialog剖析 有这样一个需求,可以让用户自定义背景颜色,这就需要提供一个颜色选择器给用户. 在Android 中,如何实现这样的功能呢,遇到这种需求是,先查看一下ApiDemos,是否已经有相关的实例,果然,找到了一个可以参考的demo:ColorPickerDialog 我已经把apidemos导入到eclipse中,请看截图: 我们要找的就是这个ColorPickerDialog,在c

NeHe OpenGL教程 第三课:颜色渲染

转自[翻译]NeHe OpenGL 教程 前言 声明,此 NeHe OpenGL教程系列文章由51博客yarin翻译(2010-08-19),本博客为转载并稍加整理与修改.对NeHe的OpenGL管线教程的编写,以及yarn的翻译整理表示感谢. 第三课:颜色渲染 添加颜色: 作为第二课的扩展,我将叫你如何使用颜色.你将理解两种着色模式,在左图中,三角形用的是光滑着色,四边形用的是平面着色. 上一课中我教给您三角形和四边形的绘制方法.这一课我将教您给三角形和四边形添加2种不同类型的着色方法.使用F

Android 仿PhotoShop调色板应用(四) 不同区域颜色选择的颜色生成响应

版权声明:本文为博主原创文章,未经博主允许不得转载.  Android 仿PhotoShop调色板应用(四) 不同区域颜色选择的颜色生成响应  上一篇讲过了主体界面的绘制,这里讲解调色板应用中的另外一个核心: 颜色选择及生成. ColorPcikerView中不同部分的选择和ColorPickerPanelView中颜色显示是怎样响应的呢?这里当然少不了回调函数: ColorPickerView: [java] view plain copy public interface OnColorCh

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

版权声明:本文为博主原创文章,未经博主允许不得转载. Android 颜色渲染(九)  PorterDuff及Xfermode详解 之前已经讲过了除ComposeShader之外Shader的全部子类, 在讲ComposeShader(组合渲染)之前,  由于构造ComposeShader需要 PorterDuffXfermode或者PorterDuff.Mode作为参数,所以在此先详细地了解下这两个类的作用,这对之后的绘图会有很大的帮 助: 在讲具体的使用之前补充一点知识,这就是 Proter

Android background tint颜色渲染

该篇文章主要是讲Android颜色渲染,首先先来看看PorterDuff,对绘图非常重要. PorterDuff的由来: 相信大多数人看到这个ProterDuff单词很奇怪了吧,这肿么个意思呢,然后就用有道啊,金山啊开始翻译,但是翻译软件给出的结果肯定还是 ProterDuff或者"未找到". 这是神马情况呢?因为ProterDuff是两个人名的组合: Tomas Proter和 Tom Duff. 他们是最早在SIGGRAPH上提出图形混合概念的大神级人物.有兴趣的童靴们可以自己查下

Android 颜色渲染(八) SweepGradient扫描/梯度渲染

版权声明:本文为博主原创文章,未经博主允许不得转载. 目录(?)[+] Android 颜色处理(八) SweepGradient 扫描/梯度渲染 为什么什么叫扫描渲染呢?  相信大家都看过雷达扫描的效果,尤其是在安全软件中.   public SweepGradient(float cx, float cy, int[] colors, float[] positions) Parameters: cx 渲染中心点x 坐标 cy 渲染中心y 点坐标 colors 围绕中心渲染的颜色数组,至少要

Android 颜色渲染(三) Shader颜色渲染

版权声明:本文为博主原创文章,未经博主允许不得转载. 相信看过在上一篇中提到的三篇文章后,大家已经对颜色处理方面有更深的体会. 之前讲到颜色渐变的效果, 具体怎么做呢,这就需要应用颜色渲染. 首先要介绍Android Api中关于颜色渲染的几个重要的类:    Shader,BitmapShader,ComposeShader,LinearGradient,RadialGradient,SweepGradient 看一下它们之间的关系:  public class Shader extends 

Android 颜色渲染(十) ComposeShader组合渲染

版权声明:本文为博主原创文章,未经博主允许不得转载. 目录(?)[+] Android 颜色处理(十) ComposeShader组合渲染 public ComposeShader(Shader shaderA,Shader shaderB, Xfermode mode) Parameters shaderA 渲染器A,Shader及其子类对象 shaderB 渲染器B,Shader及其子类对象 mode  两种渲染器组合的模式,Xfermode对象 public ComposeShader(S

Android内置颜色及其它颜色RGB对照表

参考:http://blog.csdn.net/feiyangxiaomi/article/details/38338305 我们在平时开发时经常要用到各种颜色,有了下面这两张表,妈妈再也不用担心你的配色问题了. 一:内置颜色: public static final int BLACK Added in API level 1 Constant Value: -16777216 (0xff000000)        public static final int BLUE Added in