2016-02-29 3 views
0

У меня есть кнопка (btn). Установлен стиль кнопки с использованием drawable:Установите обратное изображение для рисования программно

btn.setBackgroundResource(R.drawable.mybtn_style); 

Эта кнопка имеет некоторый текст. В некоторых случаях я хочу использовать изображение вместо текста.
Используя следующее:

if (useImagesinButtons==true){ 
    btn.setBackgroundResource(R.drawable.ic_myImage); 
    btn.setText(""); 
} 

заменяет стиль с изображением (myImage).

Но я не хочу менять общий стиль кнопки. Я просто хочу установить изображение вместо текста. Я хочу сделать это программно.

Могу ли я изменить фоновое изображение на вытяжке перед вызовом

btn.setBackgroundResource(R.drawable.mybtn_style); 

ответ

0
if (useImagesinButtons==true){ 
      btn.setBackgroundResource(R.drawable.ic_myImage); 
     } 
else{ 
btn.setBackgroundResource(R.drawable.mybtn_style);  
} 
+0

это заменяет стиль «пустым» стилем только с изображением. Я не хочу этого. И я не хочу создавать второй стиль. Я хочу изменить программный стиль, чтобы включить изображение – geo

0

-> Первый набор фона кнопки в файле XML с помощью «Android: фон» атрибут.

-> тогда, когда вы хотите текст на кнопке, просто установите текст на кнопку.

+0

Я не хочу изменять оригинальный стиль, изменяя xml, потому что тот же стиль используется в нескольких кнопках с разными текстами и (когда у них есть изображение в фоновом режиме), с разные изображения. Я хочу программно модифицировать существующий стиль. – geo

+0

Если вы хотите пойти с программированием, тогда setBackground() должен работать. – Tara

+0

Я могу установить фон таким образом. Но я хочу изменить изображение фона, прежде чем устанавливать его. – geo

0

Вы не можете изменить стиль программно. Однако вы можете создать два разных экземпляра кнопок для двух конкретных случаев, которые у вас есть. Одна текстовая кнопка и одна с изображением. Конечно, вы будете использовать один из двух за раз. Всякий раз, когда условие изменяется, вы удаляете/добавляете кнопки.

+0

У меня не может быть 2 разных стиля (один с текстом и один с изображением), потому что, как я прокомментировал ответ Тары, фоновые изображения не всегда одинаковы. Вы уверены, что я не могу изменить стиль программно? Мне не нужно изменять файл origina l xml. – geo

Смежные вопросы