2014-03-05 68 views
0

我在我的應用程序中設置了「深色背景」和「淺色背景」設置。黑暗的背景使用holo_dark png drawable並且效果很好。但是,我想將淺色背景作爲g-mail應用和其他Google應用中使用的灰色作爲背景。背景顏色仍然是白色,無論設置如何

在我的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文件中的佈局中刪除了背景屬性,並且無法更改背景顏色。

回答

1

使用此:

mBackground.setBackgroundColor(getResources().getColor(R.color.grey)); 

做出新color.xml價值觀文件夾是這樣的:

<?xml version="1.0" encoding="utf-8"?> 
<resources> 
     <color name="grey">#d3d3d3</color> 
</resources> 
+0

作品,非常感謝。 – Doronz

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屬性佈局的,你已經做正確引用它。

+0

這與我現在正在做的不同嗎?你只是創建了一個colors.xml來添加一個我剛剛放在我的strings.xml中的值。 (如上所示,這不起作用。) – Doronz

+0

1.我的文章的第一部分是關於如何以編程方式設置顏色,但是這種做法不正確。 2.爲什麼不把顏色存儲在'colors.xml'而不是'strings.xml'中?只要按照它必須完成的方式來完成,它就會起作用。就如此容易。 – Flawyte