2016-11-24 118 views
-1

我有一個顏色定義colors.xml按鈕設置顏色的Android

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

我想設置我的MainActivity背景顏色我stablish條件是設置背景實際上還要考慮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的設備正在測試,所以顏色必須與if語句來設置,但也有兩種形式的背景色設置我到我的按鈕的工作,任何想法?有人能告訴我什麼是設置背景顏色的正確形式嗎?

+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

好的。得到它了。這意味着你想在點擊按鈕時更改背景顏色。對 ? –

+0

的確,我想在點擊按鈕時改變顏色。 – mareyes

0

在您的按鈕XML,添加屬性這樣

android:background="@color/yourColor" 

但是在做之前,您需要在您的colors.xml文件中添加yourColor。 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