У меня есть десятичный код цвета (например: 4898901
). Я преобразовываю его в шестнадцатеричный эквивалент этого как 4ac055
. Как получить значение красного, зеленого и синего компонентов из шестнадцатеричного кода цвета?
Как получить значение RGB из шестнадцатеричного кода цвета в java
Ответ 1
Предполагая, что это строка:
// edited to support big numbers bigger than 0x80000000
int color = (int)Long.parseLong(myColorString, 16);
int r = (color >> 16) & 0xFF;
int g = (color >> 8) & 0xFF;
int b = (color >> 0) & 0xFF;
Ответ 2
Попробуйте это,
colorStr e.g. "#FFFFFF"
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 ) );
}
Для использования класса Color вы должны использовать java-rt-jar-stubs-1.5.0.jar, поскольку класс Color имеет значение java.awt.Color
Ответ 3
Если у вас есть строка, этот способ намного приятнее:
Color color = Color.decode("0xFF0000");
int red = color.getRed();
int blue = color.getBlue();
int green = color.getGreen();
Если у вас есть номер, сделайте так:
Color color = new Color(0xFF0000);
Тогда, конечно, чтобы получить цвета, которые вы только что сделали:
float red = color.getRed();
float green = color.getGreen();
float blue = color.getBlue();
Ответ 4
Я не уверен в вашей конкретной необходимости. Однако некоторые советы.
Класс Integer может преобразовать десятичное число в шестнадцатеричное представление с помощью метода:
Integer.toHexString(yourNumber);
Чтобы получить RGB, вы можете использовать класс Color:
Color color = new Color(4898901);
float r = color.getRed();
float g = color.getGreen();
float b = color.getBlue();
Ответ 5
Если у вас есть hex-code : 4ac055
. Первые две буквы - красный. Следующие два зеленых, а две последние буквы - для синего цвета. Итак, когда у вас есть шестнадцатеричный код красного цвета, вы должны преобразовать его в dez обратно. В этом примере, где red 4a = 74
. Green c0 = 192
и blue = 85
..
Попробуйте сделать функцию, которая разбивает hexcode
, а затем возвращает код rgb
Ответ 6
String hex1 = "#FF00FF00"; //BLUE with Alpha value = #AARRGGBB
int a = Integer.valueOf( hex1.substring( 1, 3 ), 16 );
int r = Integer.valueOf( hex1.substring( 3, 5 ), 16 );
int g = Integer.valueOf( hex1.substring( 5, 7 ), 16 );
int b = Integer.parseInt( hex1.substring( 7, 9 ), 16 );
Toast.makeText(getApplicationContext(), "ARGB: " + a + " , " + r + " , "+ g + " , "+ b , Toast.LENGTH_SHORT).show();
String hex1 = "#FF0000"; //RED with NO Alpha = #RRGGBB
int r = Integer.valueOf( hex1.substring( 1, 3 ), 16 );
int g = Integer.valueOf( hex1.substring( 3, 5 ), 16 );
int b = Integer.parseInt( hex1.substring( 5, 7 ), 16 );
Toast.makeText(getApplicationContext(), "RGB: " + r + " , "+ g + " , "+ b , Toast.LENGTH_SHORT).show();