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