Изменить цвет фона макета в Android
У меня есть простое приложение для Android с 3 кнопками. Когда я нажимаю на 1-ю кнопку, я хочу изменить цвет фона макета (который теперь белый... я хочу изменить другой цвет, когда я нажимаю кнопку). Как я могу это сделать?
На этой кнопке у меня есть событие myClickHndler
public void myClickHandler(View view) {
switch (view.getId()) {
case R.id.Button01:
text.setText("Button 1 was clicked");
break;
case R.id.Button03:
//text.setText("Button 3 was clicked");
.................... // ?
break;
}
}
Спасибо!
Ответы
Ответ 1
Дайте идентификатор вашему LinearLayout
следующим образом:
<LinearLayout android:id="@+id/laidout"
...>
а затем из вашего класса Java скажите:
...
case R.id.Button03:
//text.setText("Button 3 was clicked");
.................... // ?
mlayout= findViewById(R.id.laidout);
// set the color
mlayout.setBackgroundColor(Color.WHATEVER);
// you can use setBackgroundResource() and pass appropriate ID
// if you want a drawable bundled as resource in the background
mlayout.setBackgroundResource(R.drawable.background_img);
break;
...
[EDIT]: добавлен код для объекта, запрошенного в комментарии
Ответ 2
Если вы хотите динамически менять фон, используйте
YourView.setBackgroundColor(Color.argb(255, 255, 255, 255));
Ответ 3
setBackgroundDrawable устарел
Попробуйте следующий простой код...
Рабочий код:
LinearLayout linearLayout = (LinearLayout)findViewById(R.id.mainLayout);
linearLayout.setBackgroundResource(R.drawable.backrepeat_blue);
пользоваться
Ответ 4
Попробуйте следующий код...
код:
Resources res = getResources();
Drawable drawable = res.getDrawable(R.drawable.newImage);
LinearLayout linearLayout = (LinearLayout)findViewById(R.id.GameLayout);
linearLayout.setBackgroundDrawable(drawable);
Надеюсь, что это поможет.