2016-02-29 114 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

相关问题