23

我想使用view.setBackgroundDrawable(Drawable),但这种方法已被弃用。它被替换为.setBackground(Drawable)。但我的最低 API 8 无法处理。它告诉我将最小值设置为 API 16。

有没有办法根据设备的 API 使用不同的方法?

就像是

if(API<16)
{
  view.setBackgroundDrawable(Drawable)
}
else
{
  view.setBackground(Drawable)
}

还是我真的必须更改最低 API 才能做到这一点?

4

3 回答 3

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 或类似的东西。

于 2012-11-05T09:41:57.417 回答
7

像这样的东西:

if (Build.VERSION.SDK_INT < Build.VERSION_CODES.JELLY_BEAN){
   view.setBackgroundDrawable(Drawable)
} else {
   view.setBackground(Drawable)
}
于 2012-11-05T09:43:13.070 回答
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)。

于 2012-11-05T09:41:41.953 回答