5

のクラスのsetBackgroundDrawable()メソッドは、ViewandroidSDKAPIレベル16で非推奨になりました。

新しいメソッドはsetBackground()利用可能ですが、もちろんAPI16でのみ利用可能です。

アプリケーションを以前のAPIレベルと互換性を持たせたい場合、どうすれば回避できますか?(少なくともAPI 14)

目標は警告を排除することであり、@SupressWarningsは私にとって解決策ではありません。

4

3 に答える 3

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の警告は、例外や不要なリフレクションをキャッチするよりも優れています。

于 2012-10-25T14:27:17.807 に答える
3

使用できます

viewobj.setBackgroundResource(drawble_object);
于 2014-03-20T16:12:13.630 に答える
0

ビットマップをImageViewに設定します。

ImageView imageView =(ImageView)findViewById(R.id.imageSlice4); imageSlice4.setBackground(new BitmapDrawable(getResources()、slicedImagesArrayList.get(3)));

于 2017-04-30T15:39:01.643 に答える