我想使用view.setBackgroundDrawable(Drawable)
,但此方法为deprecated。它被替换为.setBackground(Drawable)
。但我的最低API 8无法处理。它告诉我将最小值设置为API 16。
有没有办法根据设备的API使用不同的方法?
像
这样的东西if(API<16)
{
view.setBackgroundDrawable(Drawable)
}
else
{
view.setBackground(Drawable)
}
或者我是否真的需要更改最低API才能执行此操作?
答案 0 :(得分:40)
setBackgroundDrawable
已被弃用,但它仍然有效,因此您可以使用它。但如果你想完全正确,你应该使用类似的东西
int sdk = android.os.Build.VERSION.SDK_INT;
if(sdk < android.os.Build.VERSION_CODES.JELLY_BEAN) {
setBackgroundDrawable()
} else {
setBackground();
}
为此,您需要将buildTarget api 16和min build设置为7或类似的东西。
答案 1 :(得分:7)
这样的事情:
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.JELLY_BEAN){
view.setBackgroundDrawable(Drawable)
} else {
view.setBackground(Drawable)
}
答案 2 :(得分:5)
您可以根据API版本使用不同的方法。
例如:
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.FROYO) {
//Methods for version <8 (FROYO)
} else {
// Methods for version >=8
}
此处将targetSDkversion
设置为任何更高版本(例如此处为16),并将minsdkversion
设置为较低版本(API 7)。