我有一个"黑暗背景"和"浅色背景"在我的应用上设置。深色背景使用holo_dark png drawable,效果很好。但是,我希望浅色背景是g-mail应用程序和其他谷歌应用程序中使用的灰色背景。
在我对XML布局的图形视图中,默认值是正确的灰色并且看起来很好。但是,在我的应用程序中,背景为白色。我甚至尝试过以编程方式设置它(不只是通过XML),它仍然显示为白色!
的strings.xml
<color name="grey">#d3d3d3</color>
activity_main.xml中
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/background"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:background="@color/grey"
tools:context=".MainActivity" >
MainActivity.java
mBackground.setBackgroundColor(0xd3d3d3);
XML视图 http://i.imgur.com/1vVNqTP.png
截图 http://i.imgur.com/ZadjpPi.png
在您说截图看起来是灰色之前,我将十六进制代码更改为FF0000(红色)并且它仍然是白色的!
我还从XML文件的布局中删除了背景属性,但无法更改背景颜色。
答案 0 :(得分:1)
使用此:
mBackground.setBackgroundColor(getResources().getColor(R.color.grey));
在values文件夹中创建新的color.xml,如下所示:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<color name="grey">#d3d3d3</color>
</resources>
答案 1 :(得分:0)
使用时
mBackground.setBackgroundColor(...);
您可以传递Color类中的整数值,也可以传递十六进制值包括alpha (例如0xff000000
为黑色)。
如果要从XML加载颜色,请首先在colors.xml
文件夹中创建values/
文件夹,如下所示:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<color name="grey">#d3d3d3</color>
</resources>
然后使用您已正确执行的布局的background
属性来引用它。