2016-11-24 5 views
-1

У меня есть цвет определяют в colors.xmlУстановить цвет кнопки Android

<color name="gray">#9e9e9e</color> 

Я хочу, чтобы установить цвет фона в моем MainActivity я укрепите условное, что установить фон depens версию Android, что устройство есть.

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) 
      { 
       cobro.setBackgroundColor(getResources().getColor(R.color.gray, getApplicationContext().getTheme())); 
       cobro.setBackgroundColor(ContextCompat.getColor(getApplicationContext(), R.color.gray)); 
      } 
      else 
      { 
       cobro.setBackgroundColor(getResources().getColor(R.color.gray)); 
      } 

На самом деле я тестирую в Android Lollipop, поэтому цвет должен быть установка с, если заявление, но ни одна из двух форм настройки мне цвет фона моей кнопки работы, любую идею? может ли кто-нибудь сказать мне, что является правильной формой для установки цвета фона?

+0

Что такое cobro? Попробуйте изменить цвет фона компонента корневого макета вашей деятельности. – N0un

+0

Это кнопка, я хочу изменить цвет, когда кнопка нажата, на самом деле она зеленая, но когда я нажимаю ее, я хочу изменить цвет на серый. – mareyes

ответ

0

Использование ContextCompat, а не осуждается GetColor Метод

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.L){ 
cobro.setBackground(R.drawable.btn_selector); 
}else{ 
cobro.setBackground(R.drawable.btn_selector); 
} 

btn_selector.xml

<?xml version="1.0" encoding="utf-8"?> 
<selector xmlns:android="http://schemas.android.com/apk/res/android"> 
<item android:state_pressed="true" 
android:drawable="@drawable/login_selected" /><!-- pressed --> 
<item android:state_focused="true" 
android:drawable="@drawable/login_mouse_over" /> <!-- focused --> 
<item android:drawable="@drawable/login" /><!-- default --> 

+0

Я уже сделал это и не работал, когда я щелкнул его, я хочу изменить цвет фона, но на самом деле этого не делаю. – mareyes

+0

ok. Понял. Это означает, что вы хотите изменить цвет фона при нажатии кнопки. Правильно ? –

+0

Точно, я хочу изменить цвет, когда кнопка была нажата. – mareyes

0

на кнопке XML, добавить атрибут как этот

android:background="@color/yourColor" 

Но перед этим вам нужно добавить yourColor в свой файл colors.xml. Значение по умолчанию colors.xml ниже

<?xml version="1.0" encoding="utf-8"?> 
<resources> 
    <color name="colorPrimary">#3F51B5</color> 
    <color name="colorPrimaryDark">#303F9F</color> 
    <color name="colorAccent">#FF4081</color> 
</resources> 

Тогда просто добавить yourColor там

<?xml version="1.0" encoding="utf-8"?> 
    <resources> 
     <color name="colorPrimary">#3F51B5</color> 
     <color name="colorPrimaryDark">#303F9F</color> 
     <color name="colorAccent">#FF4081</color> 
     <color name="yourColor">#yourColorCode</color> 
    </resources> 
+0

На самом деле у меня есть кнопка, обозначенная этим цветом, что я хочу сделать, это изменить цвет, когда пользователь нажмет на него. – mareyes

+0

Возможно, это будет для вас решением – Faris

+0

https://nishantvnair.wordpress.com/2010/10/05/change-color-of-button-on-click-android/ – Faris

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