Android中图片资源非常的耗内存,当图片超过一定大小时就会出现OOM(Out Of Memory)异常。关于图片的加载优化,主要有采样压缩、缓存策略、异步加载等。
1. Bitmap加载方式
Bitmap有四种加载方式:
- BitmapFactory.decodeStream():以文件流方式
- BitmapFactory.decodeResource():以资源ID方式
- BitmapFactory.decodeFile():以文件路径方式
- BitmapFactory.decodeByteArray():以字节数组方式
- 以文件流方式加载
//图片在sdcard中
String filePath = "/sdcard/pic/test.png";
FileInputStream in = null;
try {
in = new FileInputStream(filePath);
} catch (FileNotFoundException e) {
e.printStackTrace();
}
Bitmap bitmap = BitmapFactory.decodeStream(in);
//图片在Assets目录
String fileName = "sample.png";
InputStream in = getResources().getAssets().open(fileName);
Bitmap bitmap = BitmapFactory.decodeStream(in);
//图片在src目录
String filePath = "com/example/bitmap/test.png";
InputStream in = getClassLoader(