2016-02-29 121 views
0

我有一個按鈕(btn)。使用drawable設置Button的樣式:以編程方式設置drawable的背景圖像

btn.setBackgroundResource(R.drawable.mybtn_style); 

此按鈕有一些文本。在某些情況下,我想使用圖片而不是文字。
使用下列內容:

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

替換風格與圖像(MYIMAGE)。

但我不想改變按鈕的整體風格。我只想設置圖片而不是文字。我想以編程方式做到這一點。屬性:>首先設置使用「背景機器人」的XML文件中的按鈕背景 -

難道我打電話

btn.setBackgroundResource(R.drawable.mybtn_style); 

回答

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

這會用只有圖像的「空」樣式替換樣式。我不想要這個。我不想創造第二種風格。我想修改programmaticaly的樣式以包含圖片 – geo

0

前更改繪製的背景圖像。

- >然後當你想要按鈕上的文本只需設置按鈕上的文本。

+0

我不想修改原始樣式來更改xml,因爲在具有不同文本的幾個按鈕中使用了相同的樣式,並且(當它們具有背景中的圖像時),與不同的圖像。我想以編程方式修改現有樣式。 – geo

+0

如果你想要與編程,然後setBackground()應該工作。 – Tara

+0

我可以設置背景。但是我想在設置之前修改背景的圖像。 – geo

0

您不能以編程方式更改樣式。但是,您可以爲兩個特定的案例創建兩個不同的按鈕實例。一個純文字按鈕和一個帶圖像的按鈕。當然,你會一次使用其中的一種。只要條件發生變化,您就可以刪除/添加按鈕。

+0

因爲我在Tara的回覆中評論過,我不能擁有2種不同的風格(一種是文字,一種是圖像),因此背景圖像並不總是相同的。你確定我不能以編程方式修改樣式嗎?我不需要修改原始XML文件。 – geo

相關問題