背景颜色无论设置如何都保持白色

时间:2014-03-05 09:17:17

标签: android user-interface layout

我有一个"黑暗背景"和"浅色背景"在我的应用上设置。深色背景使用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文件的布局中删除了背景属性,但无法更改背景颜色。

2 个答案:

答案 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属性来引用它。