{SDK} API级别16中现已弃用setBackgroundDrawable()
类的View
方法。
新方法是setBackground()
,但当然它只能在API 16中使用。
如果我希望我的应用程序与以前的API级别兼容,我该如何解决它? (至少API 14)
目标是消除任何警告,而@SupressWarnings对我来说不是解决方案。
答案 0 :(得分:15)
通常的方法就是这个:
if (android.os.Build.VERSION.SDK_INT >= 16)
setBackground(...);
else
setBackgroundDrawable(...);
另一方面,你可以使用反射:
try {
Method setBackground = View.class.getMethod("setBackground", Drawable.class);
setBackground.invoke(myView, myDrawable);
} catch (NoSuchMethodException e) {
setBackgroundDrawable(myDrawable);
}
IMO警告比必须捕获异常和不必要的反射更好。
答案 1 :(得分:3)
您可以使用
viewobj.setBackgroundResource(drawble_object);
答案 2 :(得分:0)
将位图设置为ImageView。
ImageView imageView =(ImageView)findViewById(R.id.imageSlice4); imageSlice4.setBackground(new BitmapDrawable(getResources(),slicedImagesArrayList.get(3)));