在开发中一个供取色的调色板的小调查,在同学的帮助下 android (android-sdk-windows\samples\android-8\ApiDemos\src\com\example\android\apis\graphics\ColorPickerDialog.java
)的源码 中得到点思路,可是最终还是不怎么明白那个取色 设色的过程。有点上高中 大学时数学三角函数的感觉。好多都忘了 呵呵。
重写了一个View,并且定义一个界面颜色变化的监听。在类中重写onTouchEvent方法,分别判断当抬起,放下,移动时的状态变化。获取颜色几行代码,看着简单,由于知道的少理解起来很不容易。
获取位置:
float angle = (float) java.lang.Math.atan2(y, x);//不在中心圆此范围时计算颜色,将将矩形坐标 (x, y) 转换成极坐标 (r, theta),返回所得角 theta
// need to turn angle [-PI ... PI] into unit [0....1]
float unit = angle / (2 * PI);
if (unit < 0) {
unit += 1;
}
mCenterPaint.setColor(interpColor(mColors, unit));//移动过程中心圆的变化
根据位置,解析这个点的颜色
private int ave(int s, int d, float p) {
return s + java.lang.Math.round(p * (d - s));
}
private int interpColor(int colors[], float unit) {//中心圆取色,颜色解析
if (unit <= 0) {
return colors[0];
}
if (unit >= 1) {
return colors[colors.length - 1];
}
float p = unit * (colors.length - 1);
int i = (int) p;
p -= i;
// now p is just the fractional part [0...1) and i is the index
int c0 = colors[i];
int c1 = colors[i + 1];
int a = ave(Color.alpha(c0), Color.alpha(c1), p);
int r = ave(Color.red(c0), Color.red(c1), p);
int g = ave(Color.green(c0), Color.green(c1), p);
int b = ave(Color.blue(c0), Color.blue(c1), p);
return Color.argb(a, r, g, b);
}
最后返回的颜色既是选择的颜色。这块不怎么明白。
下面是色彩环的颜色定义:
mColors = new int[] {
0xFFFF0000,0xFF00FF00,
0xFF00FFFF, 0xFFFFFFFF, 0xFF00FFFF, 0xFF0000FF,
0xFFFF00FF, 0xFFFF0000
};
分享到:
相关推荐
android调色板、取色板实现,圆盘取色板,可以点击或者滑动取色,可以接收颜色设置自动跳转到对应位置
Android自定义圆形调色板,可自定义属性
2款调色板源码,一款是防PS调色板,一款是简洁调色板,操作简单易用。
这是安卓开发的调色板,使用photoshop打开使用。很有帮助的!
Android中使用颜色资源的完成调色板的练习题要求.pdf 学习资料 复习资料 教学资源
调色板 用javascript编写的调色板 直接下来就可以用了
Resources res = getResources(); Drawable drawable = res.getDrawable(R.drawable.back); MainActivity.this.getWindow().setBackgroundDrawable(drawable);
可以调色,完全娱乐。
采用kotlin代码实现,代码简单易懂,采用接口方式回调结果,已经封装好,方便移植。具有以下特性: ...2、颜色分解为Alpha及RGB 四通道 ...3、支持4通道分别调色,精准到每个维度,每个色值 4、输出支持十六进制及RGB通道
使用vue实现的一个调色板功能 适合初学vue的人进行参考,谢谢!
java实现调色板,附源代码学习用。不错的小功能,很多地方都能用得上。
基于winform的简单调色板 主要用到的控件有ScrollBar、TextBox
Android 仿PhotoShop调色板,非常复杂的颜色选择器,而且完全可以媲美PhotoShop中的调色板.
手动调色板,可以很好的解决调色板问题,值得珍藏,快点下载啊
qt实现调色板功能 用于qt实现选择调色
位图与调色板源代码bmp_in
位图与调色板源代码
unity 插件 实现常规的调色板功能 除了颜色抓取步能 剩下的 RGBA 和渐变区域选色都可以使用 5.3.4版本