Как конвертировать возвращенные значения INT из получателя Colordrawable () в RGB?

StackOverflow https://stackoverflow.com//questions/25004621

Вопрос

Так что у меня есть следующий фрагмент кода, который извлекает цвет фона деятельности.Тем не менее, 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;
.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top