Android颜色编辑器的制作中遇到的问题分析

2016-02-19 11:24 13 1 收藏

人生本是一个不断学习的过程,在这个过程中,图老师就是你们的好帮手,下面分享的Android颜色编辑器的制作中遇到的问题分析懂设计的网友们快点来了解吧!

【 tulaoshi.com - 编程语言 】

Android没有自带颜色编辑器,为了让用户直观的选择颜色,做了这么一个控件,效果图如下:



上方颜色条为主颜色条,用户可以选择大致需要的颜色,下方是该颜色的平衡调节,可以调节明亮度。

背景颜色实现起来很容易,用GradientDrawable在主色之间分段渐变即可,上方的背景色是永远不变的。下方平衡调节只要在白色、选定色和黑色之间渐变即可,下方的颜色随着上方的颜色变化而变化。

颜色条自身控件由于需要拖动,直接集成Android自带的SeekBar就能实现,只需替换默认的ProgressDrawable即可。

唯一遇到的一个奇怪问题是:

我为下方的颜色调提供了一个颜色数组:

代码如下:

private int[] colorArr;


里面存放:白色、上方选定色和黑色
当上方选定色更改后,我改变colorArr数组中的第二个颜色,即选定色,并调用控件的invalidate方法,奇怪的是控件并没有改变颜色,还是原来的颜色。

此时,如果拖动下方的滚动条,哪怕只拖动1%,也能改变成正确的颜色。
我就猜测:Android的SeekBar在进度没有改变的时候,是不会重绘它的进度背景色的。
于是使用以下技巧,人为的改变到某个进度,再改回来,这样就能重绘它的进度背景色了:

代码如下:

/**
* 设置颜色平衡的中间色
* @param color
*/
public void SetBalenceColor(int color)
{
this.color = color;
SetBackground();//重新设置ProgressDrawable中的中间色
//this.invalidate();
int max = this.getMax();
int currentProgress = this.getProgress(); //备份进度
this.setProgress(max - currentProgress);//修改到其他某个进度
this.setProgress(currentProgress);//还原进度
}

来源:http://www.tulaoshi.com/n/20160219/1597412.html

延伸阅读
标签: 电脑入门
平时作图形的标注时,人们往往用文本框加文字,但文本框的边框样式及内部边距都要设一遍,很麻烦,并且占用空间较大,往往几个文本框叠加在一起,不易分辨,下面介绍如何用公式编辑器设置图形标注。 首先画图,经图形设为文字环绕型。如图1: 启动公式编辑器,输入标注文字:如图 退出编辑器,如图 Wps认为此公式文字为图片,并且...
标签: 电脑入门
①打开Excel2003,单击插入--对象。 ②新建Microsoft 公式3.0. ③这时会显示公式编辑器界面,如图所示。 ④我们可以进行公式的编辑了,编辑完成之后会自动插入到Excel中,点击公式,还能查看该公式的函数,下次使用的时候直接用函数就行了。
标签: Delphi
  本章介绍多文本界面 (MDI) 、多页面界面 (MPI) 技术; VCL库中 TMemo , TEdit 控件以及有关文本编辑的常用对话框的使用。我们开发的 MPIEdit.dpr 是一个文本编辑的实用程序,可实现如下功能: ● MDI的编辑环境 ● MPI的编辑环境 ● 创建打开、编辑、保存文件 ● 查找、替换文件中指定的字符串 ● ...
本章介绍多文本界面(MDI)、多页面界面(MPI)技术;VCL库中TMemo,TEdit 控件以及有关文本编辑的常用对话框的使用。我们开发的MPIEdit.dpr是一个文本编辑的实用程序,可实现如下功能: ● MDI的编辑环境 ● MPI的编辑环境 ● 创建打开、编辑、保存文件 ● 查找、替换文件中指定的字符串 ● 复制、粘贴、剪切字符串 ...
一个优秀的程序员必须熟悉自己使用的编辑器,以前UNIX程序员十分熟悉VI,后来的Linux促进了Emacs的发展,这两种编辑器都是不需要鼠标的支持,而鼠标的出现很大程度上影响了编辑的速度,很多在window下写程序的程序员更慢了,因为更多的依赖鼠标,来回的切换鼠标与键盘浪费了许多时间。 以下是我使用JBuilder的一种模式,希望大家能够...

经验教程

900

收藏

26
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部