Изменение цвета фона макета Android - PullRequest
0 голосов
/ 12 сентября 2011

Я довольно часто ищу в Google, а также на этом сайте, если я пропустил вопрос, отвечающий на мой, извините. Но здесь это идет:

            public void onClick(View v){
            Button btt= (Button) findViewById(R.id.bttROnOff);
            LinearLayout ll = (LinearLayout) findViewById(R.id.layScreen);
            if ((btt.getText()).toString().compareToIgnoreCase("Reading Mode OFF")==0) {
                ll.setBackgroundColor(R.color.paleYellow);
                WindowManager.LayoutParams lp = getWindow().getAttributes();
                lp.screenBrightness = originalBrightness;
                getWindow().setAttributes(lp); 
                btt.setText("Reading Mode ON");
            }
            else {
                ll.setBackgroundColor(Color.WHITE);
                WindowManager.LayoutParams lp = getWindow().getAttributes();
                lp.screenBrightness = 1;
                getWindow().setAttributes(lp); 
                btt.setText("Reading Mode OFF");
            }
            }

У меня есть кнопка, чтобы изменить цвет фона на белый, а затем на «paleYellow», который определен в файле strings.xml. В моем файле макета XML он начинается с этого цвета, а когда я нажимаю кнопку, он меняется на белый. Но если я нажму кнопку, чтобы вернуться к предыдущему, то получу черный фон. Если я использую вместо:

ll.setBackgroundColor(Color.Yellow);

Работает, но:

ll.setBackgroundColor(R.color.paleYellow);

Не: S

Ответы [ 3 ]

2 голосов
/ 12 сентября 2011

setBackgroundColor принимает int, который представляет цвет в sRGB , тогда как R.color.paleYellow является идентификатором цвета, но не в том же представлении. чтобы использовать это, вы должны позвонить setBackgroundResource(R.color.paleYellow)

1 голос
/ 12 сентября 2011

Вы пробовали что-то вроде ...

Resources myRes = getResources();
int colorPaleYellow = myRes.getColor(R.color.paleYellow);
setBackgroundColor(colorPaleYellow);

или, может быть, что-то вроде ...

setBackgroundcolor(this.getColor(R.color.paleYellow));
0 голосов
/ 12 сентября 2011

это должно сделать это:

ll.setBackgroundColor(getResources().getColor(R.color.paleYellow));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...