2016-04-19 4 views
1

У меня есть ImageButton и его фона является цветКак получить цвет фона для кнопки

android:src="@color/c105" 

, как я могу получить, что цвет программно?

Я хочу, чтобы получить его как цвет не как Drawable

+2

https://stackoverflow.com/questions/5271387/get-color-int-from-color-resource? –

ответ

0

Если вы знаете, что фон на ваш взгляд является цветом, вы можете получить фоновую вытяжку, приводите его к ColorDrawable и прочитать его значение цвета:

int color = 0; 
Drawable background = imageButton.getBackground(); 
if (background instanceof ColorDrawable) { 
    color = ((ColorDrawable)background).getColor(); 
} 
+0

Что делать, если это не 'ColorDrawable'? Если я добавлю кнопку в Android Studio без изменения цвета по умолчанию, 'imageButton.getBackground();' возвращает 'RippleDrawable' и' RippleDrawable' не имеет метода '.getColor()'. Однако, если я вручную выберем цвет фона кнопки, то эта же строка вернет «ColorDrawable». Как я могу обработать случай «RippleDrawable»? – rockhammer

1
getResources().getColor(r.color.c105); 

должен сделать это

Вы можете установить цвет на кнопке изображения, имея ссылку на него в своем коде, как это:

(ImageView) findViewById(R.id.your_image_view).setBackgroundColor(getResources().getColor(R.color.c105); 
Смежные вопросы