Как изменить цвет фона моего приложения для Android в зависимости от пользовательского ввода? - PullRequest
2 голосов
/ 31 января 2012

У меня есть три режима сложности для моего приложения; Легкий, средний и жесткий. У меня есть переменная, которая отслеживает сложность (0-2). Как я могу использовать эту переменную, чтобы изменить цвет фона моего приложения? Например, когда режим легкий, я хочу, чтобы фон был зеленым, желтый - для среднего, а красный - для жесткого.

Вот что у меня в макете.

<?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. Можно ли это сделать?

Ответы [ 2 ]

4 голосов
/ 31 января 2012

Заполните ваш основной вид с 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 голосов
/ 31 января 2012
...