所以我正在做一个有 3 个滑块(r、g、b)的项目,我String.format("%02x%02x%02x", r, g, b);
用来把它变成一个十六进制字符串,我的问题是我不能把它变成一个整数。我已经在互联网上搜索并找不到任何东西,唯一的解决方案是Integer.parseInt(hex, 16)
它给了我 87295 的值,而我的原始颜色是 0054FF,我得到了 87295 (我需要它作为 int 的原因是因为我所有的 void 方法都需要int 形式的十六进制颜色)
我的回答假设您问的是X-Y 问题,这意味着它可能不会面对您在问题中所需要的内容。
假设r
, g
,b
是 类型int
,还假设您不需要Alpha颜色,那么您可以使用这样的位操作技巧,直接使用原始值来计算颜色值,而无需将其转换为十六进制字符串。
int iColor = (r << 16) + (g << 8) + b;
然后此值可用于转换为十六进制字符串以满足您的进一步需要。
String sColorHex = Integer.toHexString(iColor);
更新:由于另一个答案的评论,不应忽略 alpha,原始问题真正需要的似乎是颜色 int 值。直接使用它来获取所需的值:
int color = 0xFF000000 + (r << 16) + (g << 8) + b;
最初的问题没有提到 alpha 颜色,所以假设 alpha 是 100% (0xFF),上面显示为0xFF000000
(= 0xFF << 24)。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句