版权声明:本文为博主原创文章,未经博主允许不得转载。
在前面的系列我已经将Android中颜色渲染的原理及使用做了一个整体上概述. 现在开始根据一个比较复杂的实现进行具体的分析,这就是PhotoShop中的调色板应用
首先还是看一下最终的实现效果:
图1
怎么样,是不是要比API Demos中的ColorPickerDialog要强大得多,而且完全可以媲美PhotoShop中的调色板.
根据此例完全可以得到你想要的颜色,不再仅仅是一个简单的色相上的选取,而是提供一个HSV色彩及透明度的选取.
这里对颜色渲染原理,比如HSV色彩空间不太了解的可以之前我关于这方面的介绍:
Android 颜色渲染(二) 颜色区域划分原理与实现思路
看起来是不是实现很麻烦,不用担心,这里要介绍一个开源项目attenzione,已经很好地实现了这种PS调色板的效果
鉴于目前github经常上不去的情况,这里我将调试好的项目已上传,下面是下载地址;
http://download.csdn.net/detail/t12x3456/6246509
首先看一下项目截图;
图2
从最开始的效果图,相信大家都看出来这个项目是以Preference的形式提供颜色选取的, 如果需要集成的话,只需以library的形式添加到工程中.
当然,也可以根据自己的需求进行适当的修改并集成到项目中,非常方便.
应用类功能:
AlphaPatternDrawable: 基于Drawable的重写,提供透明度的绘制
ColorPickerDialog; 颜色选择对话框
ColorPickerPanelView:颜色生成及设置自定义VIEW
ColorPickerPreference: 颜色设置
ColorPickerView: 颜色选择自定义VIEW
图3 图4
图3为ColorPickerPreference的实现
图 4为ColorPickerDialog的实现,红色框选取的部分为ColorPickerView,绿色框的部分由 ColorPickerPanelView实现,左边的用来实时显示颜色的生成结果,右边的进行最终颜色的设置. 其中绘制透明度选择区域时使用了AlphaPatternDrawable
目前先对该开源项目做一个概述,具体的实现将会在后面详细分析.