1. ホーム
  2. android

[解決済み] Android - ImageView: setImageBitmap VS setImageDrawable

2022-02-05 09:09:06

質問

とはどのような違いがあるのでしょうか? setImageBitmapsetImageDrawable ?

ファイルから動的に設定したい画像があります。チュートリアルによると、ファイルから動的に設定するために BitmapBitmapDrawable で設定し setImageDrawable . を設定することが重要であることに気づきました。 Bitmap で直接 setImageBitmap も動作しますが、特に違いは感じられません。

Bitmap image = BitmapFactory.decodeFile(imgFile.getAbsolutePath());
BitmapDrawable bitmapDrawable = new BitmapDrawable(image);
imageView.setImageDrawable(bitmapDrawable);

または

Bitmap image = BitmapFactory.decodeFile(imgFile.getAbsolutePath());
imageView.setImageBitmap(image);

解決方法は?

内部的には両者に差はない setImageBitmap を呼び出しています。 setImageDrawable .

以下のコードは ImageView.java AOSPの

public void setImageBitmap(Bitmap bm) {
    // if this is used frequently, may handle bitmaps explicitly
    // to reduce the intermediate drawable object
    setImageDrawable(new BitmapDrawable(mContext.getResources(), bm));
}