2016-11-24 61 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