2012-01-30 16 views
1

我的应用程序有三种难度模式;简单,中等和困难。我有一个跟踪难度的变量(0-2)。我怎样才能使用这个变量来改变我的应用程序的背景颜色?例如,当模式很简单时,我希望背景为绿色,黄色为中等,红色为硬。如何根据用户输入更改我的android应用程序的背景颜色?

这是我的布局。

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout 
    android:id="@+id/relativeLayout1" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:background="@color/myBackground" > 

</RelativeLayout> 

和我有字符串资源:

<?xml version="1.0" encoding="utf-8"?> 
<resources> 
<color name="myBackground">#01CC18</color> 
</resources> 

不过,我想要做的是能够改变的背景下,程序本身,而不是在XML布局。这可以做到吗?

+0

请分享你到目前为止对这个问题的代码。 – 2012-01-30 23:57:26

+0

你使用的是什么样的'Layout'? – Mun0n 2012-01-31 00:00:32

+0

请在问题中添加您的xml布局,而不是在评论中 – WarrenFaith 2012-01-31 00:06:38

回答

3

填写您用的LinearLayout主视图。然后得到一个处理这个布局:

LinearLayout layout = (LinearLayout) findViewById(R.id.linearLayout1); 

你可以使用这个手柄无论何时您难度变化来更新背景色:

switch(difficulty) { 
case 0: 
    layout.setBackgroundColor(android.R.color.green); 
    break; 
case 1: 
    layout.setBackgroundColor(android.R.color.orange); 
    break; 
case 2: 
    layout.setBackgroundColor(android.R.color.red); 
    break; 
default: 
    break; 
} 
+0

出于某种原因,我的程序不喜欢绿色,橙色和红色。它不会接受这些颜色。它会允许诸如黑色,darker_grey或background_light之类的东西。但是,当我使用这些,它坠毁。 – Spectacle 2012-01-31 00:25:21

+0

@Spectacle尝试使用“android.graphics.Color.RED”代替。 – David 2012-01-31 01:08:00

+0

这工作!谢谢。 – Spectacle 2012-01-31 01:35:40

相关问题