2016-12-13 10 views
0

Я использую Android Studio и хотел бы использовать файл colors.xml, чтобы изменить цвет фона кнопки btn. Обе эти работы для меня:Как программно изменить цвет фона кнопки

btn.setBackgroundColor(getResources().getColor(R.color.colorBlue, null)); 

и

btn.setBackgroundColor(ContextCompat.getColor(getApplicationContext(), R.color.colorBlue)); 

Какой из них лучше? Я предполагаю, что лучше означает, что быстрее и потребляет меньше памяти/процессора.

+0

название Вопрос и описание вопрос не имеет никакого отношения. – ARiF

+0

@ARiF Да, это работает, но он не получает цвет, который я определил в colors.xml. – Travis

ответ

2

Вы можете использовать метод setBackgroundResource, который принимает идентификатор ресурса в качестве параметра.

+0

Это работает. Это, конечно, короче и выглядит лучше. – Travis

0

Этот код меняется цвет из AppCompatButton

button.getBackground().setColorFilter(ContextCompat.getColor(this, android.R.color.holo_orange_light), PorterDuff.Mode.MULTIPLY); 
+2

Можете ли вы добавить объяснение своего кода и почему он решает проблему? * Только код * ответы часто не так полезны. – Zabuza

+0

Решает проблему из-за ее кода. Вопрос требует ответа кода, а не объяснения в этом случае. – AndrewS

Смежные вопросы