Вот чисто Java решение, которое Безразлично» t используйте Android-метод getAlpha()
.
У вас есть это значение, хранящееся в String
или int
? Если у вас есть в String
, сначала избавиться от #
символа, а затем преобразовать его в int
:
String hexString = "#05000000";
int color = Integer.parseInt(hexString.replaceAll("#", ""), 16);
Затем нам нужно сделать некоторые манипуляции с битами. Это шестнадцатеричное представление цвета означает (в режиме ARGB) у вас есть значения #AARRGGBB. Это 2 байта для каждого канала, включая альфа-один. Чтобы получить только альфа-канал (AA
часть шестнадцатеричного значения), нам нужно «надавить его на 6 байт вправо» (Java - это Big Endian languange), поэтому мы можем в итоге чего-то вроде #000000AA
. Так как каждый байт состоит из 8 битов, мы должны «толчок» альфа значения 6 * 8 = 24
биты «вправо»:
int alpha = color >> 24;
Этот процесс называется Bit Shifting. Все крайние правые значения RGB отбрасываются, и мы затем альфа-значение, хранящееся в int
с десятичного значения от 0 до 255.
EDIT: Если у вас уже есть альфа-значение, возвращаемое из getAlpha(), вам всегда можно умножить на 255 и этаже:
int alpha = Math.floor(myView.getAlpha() * 255);
вы можете конвертировать hex2decimal –