изменить цвет фона макета в Android - PullRequest
12 голосов
/ 24 мая 2010

У меня есть простое приложение для 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;
    }
}

Спасибо!

Ответы [ 4 ]

25 голосов
/ 24 мая 2010

Дайте Id свой 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]: добавлен код для вещи, запрошенной в комментарии

3 голосов
/ 05 декабря 2011

Если вы хотите динамически изменить фон, используйте

 YourView.setBackgroundColor(Color.argb(255, 255, 255, 255));
1 голос
/ 03 февраля 2014

setBackgroundDrawable устарела

Попробуйте следующий простой код ...

Рабочий код:

LinearLayout linearLayout = (LinearLayout)findViewById(R.id.mainLayout);
linearLayout.setBackgroundResource(R.drawable.backrepeat_blue);

наслаждаться

0 голосов
/ 03 октября 2013

Попробуйте следующий код ...

Код:

Resources res = getResources();
Drawable drawable = res.getDrawable(R.drawable.newImage); 
LinearLayout linearLayout = (LinearLayout)findViewById(R.id.GameLayout);
linearLayout.setBackgroundDrawable(drawable);

Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...