在讀取sdcard中的圖片檔案時,如何以流的方式讀取圖片檔案,請參閱下面的函數:
[java] public static void ShowImg(String uri, ImageView iv) throws IOException {
FileInputStream fs = new FileInputStream(uri);
BufferedInputStream bs = new BufferedInputStream(fs);
Bitmap btp = BitmapFactory.decodeStream(bs);
iv.setImageBitmap(btp);
bs.close();
fs.close();
btp = null;
}
public static void ShowImg(String uri, ImageView iv) throws IOException {
FileInputStream fs = new FileInputStream(uri);
BufferedInputStream bs = new BufferedInputStream(fs);
Bitmap btp = BitmapFactory.decodeStream(bs);
iv.setImageBitmap(btp);
bs.close();
fs.close();
btp = null;
}主要用到的類:java.io.FileInputStream,java.io.BufferedInputStream和android.graphics.BitmapFactory
以流的方式讀取要比直接以檔案的方式讀取:Bitmap btp = BitmapFactory.decodeFile(uri); 代碼要多很多,
可為什麼要用這種方式,系統要提供這樣的方法呢?具體原因,我沒有深入學習,不過,網上有種說法,以流的方式讀取,可能更利於記憶體回收,不知道真假!
摘自 心靈淨土