Android在外部存储上读写图片文件
Android的位图工具是Bitmap,App读写Bitmap可以使用性能更好的BufferedOutputStream和BufferedInputStream。
Android提供了BitmapFactory工具用于读取各种来源的图片,相关方法如下:
- decodeResource:该方法可从资源文件中读取图片信息
- decodeFile:该方法可将指定路径的图片读取到Bitmap对象
- decodeStream:该方法从输入流中读取位图数据
写入
String fileName = System.currentTimeMillis() + ".png";
path = getExternalFilesDir(Environment.DIRECTORY_DOWNLOADS).toString() + File.separator + fileName;
// 从指定的资源文件中获取位图对象
Bitmap b1 = BitmapFactory.decodeResource(getResources(), R.drawable.meilv);
// 把位图对象保存为图片文件
FileUtil.saveImage(path, b1);
读取
Bitmap bitmap = FileUtil.readImage(path);
iv_content.setImageBitmap(bitmap);
FileUtil
public static void saveImage(String path, Bitmap bitmap) {
try (FileOutputStream fos = new FileOutputStream(path)) {
bitmap.compress(Bitmap.CompressFormat.PNG, 100, fos);
} catch (Exception e) {
e.printStackTrace();
}
}
public static Bitmap readImage(String path) {
Bitmap bitmap = null;
try (FileInputStream fis = new FileInputStream(path)) {
bitmap = BitmapFactory.decodeStream(fis);
} catch (Exception e) {
e.printStackTrace();
}
return bitmap;
}
案例代码