Android 的 RGBToHSV 方法不起作用

标签 android

根据 the document , android.graphics.Color 有一个名为 RGBToHSV 的方法可以将 RGB 值转换为 HSV,这是文档告诉我的:

public static void RGBToHSV (int red, int green, int blue, float[] hsv)

Convert RGB components to HSV.

  • hsv[0] is Hue [0 .. 360)
  • hsv[1] is Saturation [0...1]
  • hsv[2] is Value [0...1]

Parameters

  • red: red component value [0..255]
  • green: green component value [0..255]
  • blue: blue component value [0..255]
  • hsv: 3 element array which holds the resulting HSV components.

但是当我编写一个程序来测试它时,它无论如何都不起作用。

float[] hsv = new float[3];

RGBToHSV(255, 255, 0, hsv);

Log.i("HSV_H", "" + hsv[0]);   // always output 0.0

这是一个错误吗?

最佳答案

您的期望值是多少?对我来说,它似乎有效。

我使用的代码:

float[] hsv = new float[3];
android.graphics.Color.RGBToHSV(255, 255, 0, hsv);
Log.i("HSV_H", "Hue=" + hsv[0]);
Log.i("HSV_H", "Saturation=" + hsv[1]);
Log.i("HSV_H", "Value=" + hsv[2]);

结果:

Hue=60.0
Saturation=1.0
Value=1.0

这是在 1.6 模拟器上使用针对 Android SDK 1.6(API 级别 4)的项目运行的。

关于Android 的 RGBToHSV 方法不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3943204/

相关文章:

android - 在新的 intel x86 android 模拟器中访问 google api

android - 减小 Android 应用程序大小

java - Android http post 高级请求与主机上的正文

android - 为整个 Android 应用程序添加页脚

android - 方法中声明的最终静态 bool 变量

java - 如何将 ASCII 转换为十进制

android - 用于流数据的最佳蓝牙模式是什么?

android - API 级别 3 的墙纸偏移量?

android - 坚持 Android 启动 Intent ?

android - Android UI 中类似 Excel 的行为