在按钮Android中设置颜色

时间:2016-11-24 22:03:44

标签: java android button

我在colors.xml中有颜色定义

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

我想在我的MainActivity中设置背景颜色我坚持设置背景取决于设备所具有的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语句设置,但两种形式都没有为我的按钮工作设置背景颜色,任何想法?任何人都可以告诉我设置背景颜色的正确形式是什么?

2 个答案:

答案 0 :(得分: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 -->

答案 1 :(得分:0)

在Button 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>