安卓按钮设置背景



我想为按钮设置背景。有了Android 4.1.2,一切都很好,但如果用Android 4.0启动,我会收到一个错误

java.lang.NoSuchMethodError: android.widget.Button.setBackground 

带有代码

LayerDrawable composite = new LayerDrawable(layers);
button.setBackground(composite);

那么,如何设置LayerDrawable背景,但使用Android 4.0或更早版本?

虽然以上两个答案都很接近,但您确实应该使用

Build.VERSION.SDK_INT

作为Build.VERSION.SDK返回一个字符串,并且自API 4 以来一直被弃用

if(Build.VERSION.SDK_INT < Build.VERSION_CODES.JELLY_BEAN){
         LayerDrawable composite = new LayerDrawable(layers);
         button.setBackgroundDrawable(composite);
}else{
         LayerDrawable composite = new LayerDrawable(layers);
         button.setBackground(composite);
}

试试这个。。。

if(Build.VERSION.SDK < Build.VERSION_CODES.ICE_CREAM_SANDWICH){
     LayerDrawable composite = new LayerDrawable(layers);
     button.setBackgroundDrawable(composite);
}else{
     LayerDrawable composite = new LayerDrawable(layers);
     button.setBackground(composite);
}

setBackground drawable接收参数(drawable background)。。。

我希望能帮助你。。。

setBackground方法仅适用于API 16级或更高级别。您可能正在使用API级别低于16的方法,这就是它抛出NoSuchMethodError的原因。对于较低的API版本,您可能需要尝试setBackgroundDrawable。像这样的东西就可以了:

if(Build.VERSION.SDK < Build.VERSION_CODES.JELLY_BEAN){
     LayerDrawable composite = new LayerDrawable(layers);
     button.setBackgroundDrawable(composite);
}else{
     LayerDrawable composite = new LayerDrawable(layers);
     button.setBackground(composite);
}

相关内容

  • 没有找到相关文章

最新更新