小智 238
实际上,有一种更容易(内置)的方式:
Color.decode("#FFCCEE");
Run Code Online (Sandbox Code Playgroud)
xhh*_*xhh 152
我想这应该这样做:
/**
*
* @param colorStr e.g. "#FFFFFF"
* @return
*/
public static Color hex2Rgb(String colorStr) {
return new Color(
Integer.valueOf( colorStr.substring( 1, 3 ), 16 ),
Integer.valueOf( colorStr.substring( 3, 5 ), 16 ),
Integer.valueOf( colorStr.substring( 5, 7 ), 16 ) );
}
Run Code Online (Sandbox Code Playgroud)
And*_*eck 36
public static void main(String[] args) {
int hex = 0x123456;
int r = (hex & 0xFF0000) >> 16;
int g = (hex & 0xFF00) >> 8;
int b = (hex & 0xFF);
}
Run Code Online (Sandbox Code Playgroud)
Tod*_*ies 24
对于Android开发,我使用:
int color = Color.parseColor("#123456");
Run Code Online (Sandbox Code Playgroud)
这是一个处理RGB和RGBA版本的版本:
/**
* Converts a hex string to a color. If it can't be converted null is returned.
* @param hex (i.e. #CCCCCCFF or CCCCCC)
* @return Color
*/
public static Color HexToColor(String hex)
{
hex = hex.replace("#", "");
switch (hex.length()) {
case 6:
return new Color(
Integer.valueOf(hex.substring(0, 2), 16),
Integer.valueOf(hex.substring(2, 4), 16),
Integer.valueOf(hex.substring(4, 6), 16));
case 8:
return new Color(
Integer.valueOf(hex.substring(0, 2), 16),
Integer.valueOf(hex.substring(2, 4), 16),
Integer.valueOf(hex.substring(4, 6), 16),
Integer.valueOf(hex.substring(6, 8), 16));
}
return null;
}
Run Code Online (Sandbox Code Playgroud)
你可以简单地做如下:
public static int[] getRGB(final String rgb)
{
final int[] ret = new int[3];
for (int i = 0; i < 3; i++)
{
ret[i] = Integer.parseInt(rgb.substring(i * 2, i * 2 + 2), 16);
}
return ret;
}
Run Code Online (Sandbox Code Playgroud)
例如
getRGB("444444") = 68,68,68
getRGB("FFFFFF") = 255,255,255
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
121153 次 |
| 最近记录: |