博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Android 颜色渲染(二) 颜色区域划分原理与实现思路
阅读量:6985 次
发布时间:2019-06-27

本文共 866 字,大约阅读时间需要 2 分钟。

      在前面的系列我已经将Android中颜色渲染的原理及使用做了一个整体上概述. 现在开始根据一个比较复杂的实现进行具体的分析,这就是PhotoShop中的调色板应用

首先还是看一下最终的实现效果:

                               图1

                                                 

        怎么样,是不是要比API Demos中的ColorPickerDialog要强大得多,而且完全可以媲美PhotoShop中的调色板.

        根据此例完全可以得到你想要的颜色,不再仅仅是一个简单的色相上的选取,而是提供一个HSV色彩及透明度的选取.

这里对颜色渲染原理,比如HSV色彩空间不太了解的可以之前我关于这方面的介绍:

 

看起来是不是实现很麻烦,不用担心,这里要介绍一个开源项目attenzione,已经很好地实现了这种PS调色板的效果

鉴于目前github经常上不去的情况,这里我将调试好的项目已上传,下面是下载地址;

首先看一下项目截图;

   图2

        从最开始的效果图,相信大家都看出来这个项目是以Preference的形式提供颜色选取的, 如果需要集成的话,只需以library的形式添加到工程中.

当然,也可以根据自己的需求进行适当的修改并集成到项目中,非常方便.

应用类功能:

AlphaPatternDrawable:  基于Drawable的重写,提供透明度的绘制

ColorPickerDialog; 颜色选择对话框

ColorPickerPanelView:颜色生成及设置自定义VIEW

ColorPickerPreference: 颜色设置

ColorPickerView: 颜色选择自定义VIEW

                                  图3         图4

 

图3为ColorPickerPreference的实现

图4为ColorPickerDialog的实现,红色框选取的部分为ColorPickerView,绿色框的部分由ColorPickerPanelView实现,左边的用来实时显示颜色的生成结果,右边的进行最终颜色的设置.  其中绘制透明度选择区域时使用了AlphaPatternDrawable

目前先对该开源项目做一个概述,具体的实现将会在后面详细分析.

 

你可能感兴趣的文章
jetbrick-template 1.1.0 发布,支持 #tag, #macro, layout
查看>>
TCP的六个控制位
查看>>
进制转换
查看>>
我的友情链接
查看>>
新书上市:《FLUENT 14.0超级学习手册》
查看>>
mysql数据库query cache
查看>>
使用docker commit 来扩展一个image
查看>>
jsp 防止sql注入 之 preparestatement篇(转载)
查看>>
Linux之Ansible入门用法(实验解析)
查看>>
Linux系统如何在开机时修改root密码
查看>>
Anychat的绝对路径与相对路径
查看>>
我的友情链接
查看>>
如何使用网络库实现应用级消息收发
查看>>
Single Area OSPF
查看>>
rhel6之yum
查看>>
selenium+ant+testng测试框架简单介绍
查看>>
自己写的DBUtil数据库连接工具类
查看>>
登录多实例MySQL失败,修改密码临时解决,原因不明
查看>>
Linux下安装oracle数据库步骤
查看>>
yum 不小心删除后安装
查看>>