Android - ImageView : setImageBitmap VS setImageDrawable

标签 android imageview android-bitmap

setImageBitmapsetImageDrawable有什么区别?

我有一张我想从文件中动态设置的图像。我遵循的教程说将我的 Bitmap 转换为 BitmapDrawable 然后使用 setImageDrawable 设置它。我注意到直接使用 setImageBitmap 设置 Bitmap 也可以,但我没有注意到任何区别。

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

以下代码取自AOSP的ImageView.java

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));
}

关于Android - ImageView : setImageBitmap VS setImageDrawable,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12001793/

相关文章:

java - 基于位置的自动移动静音 Action

java - 安卓。 SQLite 异常 : no such column _ingredients

android - ImageView 显示奇怪的全彩框

java - 在 Android 中删除旋转图像不显示删除正确路径

java - 我怎样才能指定这个 ImageView 必须显示得更小?

android - SpeechRecognizer.isRecognitionAvailable() 在 Android 11 中始终为 false

android - 如何通过编程方式检查android中的移动网络范围

java - 外部分配对于这个过程来说太大了

android - 可绘制对象与位图

android - 如何像在 whatsapp 中那样对图像进行二次采样/调整大小