在开发中一个供取色的调色板的小调查,在同学的帮助下 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中实现一个圆盘取色板,并讨论...
本篇将详细探讨两款Android调色板源码——防PS调色板与简洁调色板,以及如何在实际项目中应用它们。 首先,我们来看"HSV调色板.rar"。HSV代表色相(Hue)、饱和度(Saturation)和亮度(Value)。这种色彩模型与...
综上所述,创建一个自定义的Android圆形调色板涉及到多个步骤,包括自定义视图的绘制、用户交互处理、属性定制以及颜色选择逻辑。通过这样的实践,开发者不仅可以实现独特的视觉效果,还能提高应用程序的可定制性和...
"安卓设计颜色调色板(Android_Design_Color_Swatchers)" 是一个专为安卓开发者和设计师准备的资源,它包含了一系列预设的颜色组合,以确保你的应用界面能够遵循统一、专业的设计规范。这个调色板可以使用Adobe ...
在计算机图形学中,调色板(Palette)是一种在8位色彩或更低色彩深度系统中管理颜色的方法。在这些系统中,每个像素只能表示256种不同的颜色,因此需要一个调色板来映射这些索引到实际的颜色。本教程主要针对VC++...
3. **RealizePalette**: 实现调色板意味着将逻辑调色板转换为物理调色板,即将调色板中的颜色映射到显示器实际支持的颜色。这个过程通常在窗口显示或重绘时发生。 4. **SetSystemPaletteUse**: 通过这个函数,...
调色板 用javascript编写的调色板 直接下来就可以用了
在C#中,我们可以使用`ColorPalette`类来操作调色板,例如通过`Bitmap.Palette`属性获取或设置位图的调色板。 C#中处理调色板的方法包括: 1. 创建自定义调色板:可以使用`Color[]`数组创建一个`ColorPalette`,...
位图与调色板是计算机图形学中的两个关键概念,特别是在图像处理和显示技术中扮演着重要角色。位图,也称为栅格图像,是由像素阵列构成的,每个像素代表图像上的一个颜色点。调色板则在位图中用于存储和管理颜色,...
在Windows Forms(WinForm)开发中,创建一个简单的调色板是常见的需求,这通常用于图形设计或颜色选择相关的应用程序。本项目的核心是利用WinForm提供的控件来实现这一功能,主要涉及ScrollBar和TextBox控件。 ...
而“jquery调色板插件”则是jQuery生态中的一个重要工具,它为用户界面设计提供了丰富的色彩选择功能。下面将详细阐述这个插件的相关知识点。 首先,jQuery调色板插件的主要功能是提供一个互动式的颜色选择器,帮助...
在Qt框架中,调色板(QPalette)是用于控制应用程序界面元素颜色的重要工具。它允许开发者自定义窗口、控件、文本等的颜色方案,以适应不同的视觉需求或主题风格。Qt的调色板功能提供了丰富的色彩组合,使得UI设计...
在本项目“vue-调色板”中,我们将会探索如何利用Vue来创建一个实用的调色板功能,这对于网页设计或者UI开发来说是非常有价值的工具。这个项目非常适合初学者用来实践Vue的基本概念和技能。 首先,让我们深入了解...
在IT领域,调色板(Palette)是一种非常重要的概念,特别是在图形设计、图像处理和编程中。调色板是一系列预定义的颜色,用于控制和管理显示或打印图像时所用的颜色。手动创建调色板是一种高级技巧,允许用户根据...
在本文中,我们将深入探讨如何使用Microsoft Foundation Class (MFC) 库来创建一个简单的调色板。MFC 是微软为C++开发Windows应用程序提供的一套类库,它封装了Windows API,使得开发者能更方便地进行图形用户界面...
在Unity中实现调色板功能是一项重要的任务,因为颜色管理是游戏美术设计、用户界面(UI)元素和场景装饰的重要组成部分。下面我们将深入探讨如何在Unity中创建和使用调色板。 首先,理解颜色的基本概念至关重要。...
采用kotlin代码实现,代码简单易懂,采用接口方式回调结果,已经封装好,方便移植。具有以下特性: ...2、颜色分解为Alpha及RGB 四通道 ...3、支持4通道分别调色,精准到每个维度,每个色值 4、输出支持十六进制及RGB通道