Как получить цвета из Gradientrawable?

Как можно получить Gradientrawable цвета, установленные setColors(@ColorInt int[] colors)?

Любая помощь будет оценена.

1 ответ

Пожалуйста, обратитесь к GradientDrawable.java, затем внесите необходимые изменения в результат по мере необходимости.

    public class ColorGradientDrawable extends Drawable {
        ...
        private int mColor; // this is the color which you try to get
        ...
        // original setColor function with little modification
        public void setColor(int argb) {
            mColor = argb;
            mGradientState.setSolidColor(argb);
            mFillPaint.setColor(argb);
            invalidateSelf();
        }

// вот как я получаю цвет из этого класса

        public int getColor() {
            return mColor;
        }
        ...

// Это то же самое, что и GradientState, просто внесите необходимые изменения, чтобы сделать его компилируемым

        final public static class GradientState extends ConstantState {
            ...
        }
    }
Другие вопросы по тегам