Как конвертировать возвращенные значения INT из получателя Colordrawable () в RGB?
-
20-12-2019 - |
Вопрос
Так что у меня есть следующий фрагмент кода, который извлекает цвет фона деятельности.Тем не менее, GetColor возвращает значение int, и, похоже, нет способа изменить это, чтобы вернуть более стандартный формат для работы и модификации.
setContentView(R.layout.activity_test);
View root = ((ViewGroup) findViewById(android.R.id.content)).getChildAt(0);
int color = Color.TRANSPARENT;
Drawable background = root.getBackground();
if (background instanceof ColorDrawable)
color = ((ColorDrawable) background).getColor();
.
В этом конкретном случае цвет фона активности первоначально определяется для генеракодицетагкода в файле XML, который получается GetColor () AS -16737844.Тем не менее, я хочу изменить его, делая вещи, как постепенно изменение значений RGB цвета со временем [I.E.RGB (InitialrVal + 1, INationalGVal + 1, InityBVal + 1)].Это требует, чтобы я как-то конвертировать -16737844 на набор значений RGB, но, похоже, нет средств для этого.
Решение
Вы хотите преобразовать шестнадцатеричное значение цвета в RGB.
int red = (color >> 16) & 0xFF;
int green = (color >> 8) & 0xFF;
int blue = (color >> 0) & 0xFF;
.