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 に答える