`
蓝月儿
  • 浏览: 49817 次
  • 性别: Icon_minigender_2
  • 来自: 北京
社区版块
存档分类
最新评论

android 调色板小练习

阅读更多
在开发中一个供取色的调色板的小调查,在同学的帮助下 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
    }; 
分享到:
评论
3 楼 j67065 2012-08-27  
还是谢谢!我知道怎么用了,就是对那个颜色的解析函数的返回式子的算法不是很明白,希望大神能够帮下忙
private int ave(int s, int d, float p) { 
        return s + java.lang.Math.round(p * (d - s)); 
    } 
2 楼 蓝月儿 2012-08-20  
j67065 写道
有点看不懂

一年了,我都忘了怎么弄出来的了,
1 楼 j67065 2012-06-08  
有点看不懂

相关推荐

    android调色板取色板

    在Android开发中,调色板和取色板是创建用户界面时非常重要的工具,它们允许用户自定义颜色选择,常用于各种应用场景,如绘画应用、主题设置或个性化配置。本篇将详细介绍如何在Android中实现一个圆盘取色板,并讨论...

    2款 android 调色板源码 防PS调色板,ColorPicker

    本篇将详细探讨两款Android调色板源码——防PS调色板与简洁调色板,以及如何在实际项目中应用它们。 首先,我们来看"HSV调色板.rar"。HSV代表色相(Hue)、饱和度(Saturation)和亮度(Value)。这种色彩模型与...

    Android自定义圆形调色板

    综上所述,创建一个自定义的Android圆形调色板涉及到多个步骤,包括自定义视图的绘制、用户交互处理、属性定制以及颜色选择逻辑。通过这样的实践,开发者不仅可以实现独特的视觉效果,还能提高应用程序的可定制性和...

    安卓设计颜色调色板(Android_Design_Color_Swatchers)

    "安卓设计颜色调色板(Android_Design_Color_Swatchers)" 是一个专为安卓开发者和设计师准备的资源,它包含了一系列预设的颜色组合,以确保你的应用界面能够遵循统一、专业的设计规范。这个调色板可以使用Adobe ...

    vc调色板原理编程.rar_VC调色板 原理 编程_调色板

    在计算机图形学中,调色板(Palette)是一种在8位色彩或更低色彩深度系统中管理颜色的方法。在这些系统中,每个像素只能表示256种不同的颜色,因此需要一个调色板来映射这些索引到实际的颜色。本教程主要针对VC++...

    win32 调色板

    3. **RealizePalette**: 实现调色板意味着将逻辑调色板转换为物理调色板,即将调色板中的颜色映射到显示器实际支持的颜色。这个过程通常在窗口显示或重绘时发生。 4. **SetSystemPaletteUse**: 通过这个函数,...

    调色板 用javascript编写的调色板

    调色板 用javascript编写的调色板 直接下来就可以用了

    位图与调色板源代码bmp_in_mdiclient2.zip_BMP 调色板_C#调色_c# 调色板_in_调色板

    在C#中,我们可以使用`ColorPalette`类来操作调色板,例如通过`Bitmap.Palette`属性获取或设置位图的调色板。 C#中处理调色板的方法包括: 1. 创建自定义调色板:可以使用`Color[]`数组创建一个`ColorPalette`,...

    位图与调色板

    位图与调色板是计算机图形学中的两个关键概念,特别是在图像处理和显示技术中扮演着重要角色。位图,也称为栅格图像,是由像素阵列构成的,每个像素代表图像上的一个颜色点。调色板则在位图中用于存储和管理颜色,...

    基于winform的简单调色板

    在Windows Forms(WinForm)开发中,创建一个简单的调色板是常见的需求,这通常用于图形设计或颜色选择相关的应用程序。本项目的核心是利用WinForm提供的控件来实现这一功能,主要涉及ScrollBar和TextBox控件。 ...

    jquery调色板插件

    而“jquery调色板插件”则是jQuery生态中的一个重要工具,它为用户界面设计提供了丰富的色彩选择功能。下面将详细阐述这个插件的相关知识点。 首先,jQuery调色板插件的主要功能是提供一个互动式的颜色选择器,帮助...

    qt实现的调色板

    在Qt框架中,调色板(QPalette)是用于控制应用程序界面元素颜色的重要工具。它允许开发者自定义窗口、控件、文本等的颜色方案,以适应不同的视觉需求或主题风格。Qt的调色板功能提供了丰富的色彩组合,使得UI设计...

    vue-调色板

    在本项目“vue-调色板”中,我们将会探索如何利用Vue来创建一个实用的调色板功能,这对于网页设计或者UI开发来说是非常有价值的工具。这个项目非常适合初学者用来实践Vue的基本概念和技能。 首先,让我们深入了解...

    调色板程序,手动添加调色板

    在IT领域,调色板(Palette)是一种非常重要的概念,特别是在图形设计、图像处理和编程中。调色板是一系列预定义的颜色,用于控制和管理显示或打印图像时所用的颜色。手动创建调色板是一种高级技巧,允许用户根据...

    MFC制作调色板

    在本文中,我们将深入探讨如何使用Microsoft Foundation Class (MFC) 库来创建一个简单的调色板。MFC 是微软为C++开发Windows应用程序提供的一套类库,它封装了Windows API,使得开发者能更方便地进行图形用户界面...

    Unity 颜色板 - 调色板

    在Unity中实现调色板功能是一项重要的任务,因为颜色管理是游戏美术设计、用户界面(UI)元素和场景装饰的重要组成部分。下面我们将深入探讨如何在Unity中创建和使用调色板。 首先,理解颜色的基本概念至关重要。...

    Android取色器 调色板 颜色选择器

    采用kotlin代码实现,代码简单易懂,采用接口方式回调结果,已经封装好,方便移植。具有以下特性: ...2、颜色分解为Alpha及RGB 四通道 ...3、支持4通道分别调色,精准到每个维度,每个色值 4、输出支持十六进制及RGB通道

Global site tag (gtag.js) - Google Analytics