设置ImageView的图像会更好(使用更少的堆空间)方式吗?
imageView.setImageDrawable(Drawable.createFromPath(path));
或
imageView.setImageBitmap(BitmapFactory.decodeFile(path));
或
is = new FileInputStream(path);
imageView.setImageBitmap(BitmapFactory.decodeStream(is));
is.close();
BitmapFactory让我设置一个inSampleSize,所以我不会拉得太大的位图。 Drawable会为我做那样的事情吗?
BitmapFactory.decodeStream优于BitmapFactory.decodeFile吗?
答案 0 :(得分:7)
decodeStream()
和decodeFile()
之间应该没有区别。事实上,decodeFile()
做同样的事情。它打开一个输入流并调用decodeStream()
。请参阅the source。
Drawable.createFromPath()
也只是调用BitmapFactory.decodeFile()
。所以它在任何情况下都是相同的工作/功能。