这是我的代码,应该采用一个颜色int,将其转换为HSV,将0.5添加到色调,然后转换回int。但是在输出中,而不是0xFF00FFFF给出了-64768 ...任何想法可能是什么问题?

    int c = 0xFFFF0000;   /// RED
    float[] hsv = new float[3];
    Color.colorToHSV( c, hsv ); /// splitting "c" into hsv
    hsv[0] = hsv[0]+0.5f;  /// adding 0.5 to Hue
    int c1 = Color.HSVToColor( hsv ); /// converting hsv back to int
    Log.e("color: ", String.valueOf(c1) ); /// outputting new color int
    // should be "0xFF00FFFF" (light bule) , but is  "-64768" hmm...


谢谢!

最佳答案

您不以十六进制打印字符串。
而是打印原始int值。

十六进制的值是FFFF0300,这很有意义。

07-24 09:28