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

荡女三千奈我何

荡女三千奈我何

2016-02-19 11:24

人生本是一个不断学习的过程,在这个过程中,图老师就是你们的好帮手,下面分享的Android颜色编辑器的制作中遇到的问题分析懂设计的网友们快点来了解吧!
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);//还原进度
}
展开更多 50%)
分享

猜你喜欢

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

编程语言 网络编程
Android颜色编辑器的制作中遇到的问题分析

Android中vim编辑器进阶的使用介绍

编程语言 网络编程
Android中vim编辑器进阶的使用介绍

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

介绍Maya 中的UV编辑器

设计软件 平面设计软件 广告设计软件
介绍Maya 中的UV编辑器

编辑器的改进

编程语言 网络编程
编辑器的改进

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

UBB编辑器

Web开发
UBB编辑器

Word公式编辑器

电脑入门
Word公式编辑器

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

win10如何还原系统?

win10如何还原系统?

一些常用的Javascript函数

一些常用的Javascript函数
下拉加载更多内容 ↓