Android 设置可拉伸';以编程方式创建背景图像

Android 设置可拉伸';以编程方式创建背景图像,android,button,background-image,android-button,Android,Button,Background Image,Android Button,我有一个按钮(btn)。使用可绘制的图形设置按钮的样式: btn.setBackgroundResource(R.drawable.mybtn_style); btn.setBackgroundResource(R.drawable.mybtn_style); 这个按钮有一些文字。在某些情况下,我希望使用图像而不是文本。 使用以下命令: if (useImagesinButtons==true){ btn.setBackgroundResource(R.drawable.ic_myIm

我有一个按钮(btn)。使用可绘制的图形设置按钮的样式:

btn.setBackgroundResource(R.drawable.mybtn_style);
btn.setBackgroundResource(R.drawable.mybtn_style);
这个按钮有一些文字。在某些情况下,我希望使用图像而不是文本。
使用以下命令:

if (useImagesinButtons==true){
   btn.setBackgroundResource(R.drawable.ic_myImage);
   btn.setText("");
}
将样式替换为图像(myImage)

但我不想改变按钮的整体样式。我只想设置一个图像而不是文本。我想通过编程来实现这一点

在打电话之前,我可以更改绘图板的背景图像吗


->首先使用“android:background”属性在XML文件中设置按钮背景


->然后,当您需要文本打开按钮时,只需设置文本打开按钮。

您不能以编程方式更改样式。但是,您可以为您拥有的两个特定案例创建两个不同的按钮实例。一个纯文本按钮和一个带图像的按钮。当然,您将一次使用其中一个。只要条件发生变化,您就可以删除/添加按钮。

这将用“空”样式替换样式,而只使用图像。我不要这个。我不想创造第二种风格。我想修改程序I样式以包含图片I不想修改原始样式更改xml,因为同一样式用于具有不同文本的多个按钮,并且(当它们在背景中有图像时)具有不同的图像。我想以编程方式修改现有样式。如果你想继续编程,那么setBackground()应该可以工作。我可以这样设置背景。但是我想在设置背景图像之前修改背景图像。我不能有两种不同的样式(一种带有文本,一种带有图像),因为正如我在Tara的回复中所评论的,背景图像并不总是相同的。你确定我不能以编程方式修改样式吗?我不需要修改原始xml文件。
  if (useImagesinButtons==true){
            btn.setBackgroundResource(R.drawable.ic_myImage);
        }
else{
btn.setBackgroundResource(R.drawable.mybtn_style);    
}