У меня есть ImageButton и его фона является цветКак получить цвет фона для кнопки
android:src="@color/c105"
, как я могу получить, что цвет программно?
Я хочу, чтобы получить его как цвет не как Drawable
У меня есть ImageButton и его фона является цветКак получить цвет фона для кнопки
android:src="@color/c105"
, как я могу получить, что цвет программно?
Я хочу, чтобы получить его как цвет не как Drawable
Если вы знаете, что фон на ваш взгляд является цветом, вы можете получить фоновую вытяжку, приводите его к ColorDrawable
и прочитать его значение цвета:
int color = 0;
Drawable background = imageButton.getBackground();
if (background instanceof ColorDrawable) {
color = ((ColorDrawable)background).getColor();
}
Что делать, если это не 'ColorDrawable'? Если я добавлю кнопку в Android Studio без изменения цвета по умолчанию, 'imageButton.getBackground();' возвращает 'RippleDrawable' и' RippleDrawable' не имеет метода '.getColor()'. Однако, если я вручную выберем цвет фона кнопки, то эта же строка вернет «ColorDrawable». Как я могу обработать случай «RippleDrawable»? – rockhammer
getResources().getColor(r.color.c105);
должен сделать это
Вы можете установить цвет на кнопке изображения, имея ссылку на него в своем коде, как это:
(ImageView) findViewById(R.id.your_image_view).setBackgroundColor(getResources().getColor(R.color.c105);
https://stackoverflow.com/questions/5271387/get-color-int-from-color-resource? –