from stackoverflow
解决 Out of memory 问题
private Bitmap decodeFile(File f){
Bitmap b = null;
try {
//Decode image size
BitmapFactory.Options o = new BitmapFactory.Options();
o
.inJustDecodeBounds = true;

FileInputStream fis = new FileInputStream(f);
BitmapFactory.decodeStream(fis, null, o);
fis
.close();

int scale = 1;
if (o.outHeight > IMAGE_MAX_SIZE || o.outWidth > IMAGE_MAX_SIZE) {
scale
= Math.pow(2, (int) Math.round(Math.log(IMAGE_MAX_SIZE / (double) Math.max(o.outHeight, o.outWidth)) / Math.log(0.5)));
}

//Decode with inSampleSize
BitmapFactory.Options o2 = new BitmapFactory.Options();
o2
.inSampleSize = scale;
fis
= new FileInputStream(f);
b
= BitmapFactory.decodeStream(fis, null, o2);
fis
.close();
} catch (FileNotFoundException e) {
}
return b;
}

更多相关文章

  1. 代码中设置drawableleft
  2. android 3.0 隐藏 系统标题栏
  3. Android开发中activity切换动画的实现
  4. Android(安卓)学习 笔记_05. 文件下载
  5. Android中直播视频技术探究之—摄像头Camera视频源数据采集解析
  6. 技术博客汇总
  7. android 2.3 wifi (一)
  8. AndRoid Notification的清空和修改
  9. Android中的Chronometer

随机推荐

  1. android键盘隐藏
  2. 如何在android 中编译alsa-utils工具
  3. Android(安卓)Alarm驱动源代码分析(Alarm.
  4. Android(安卓)USB配件模式
  5. android设备连接到pc进行应用程序调试
  6. Android简明开发教程九:创建应用程序框架
  7. Android各版本市占率:果冻豆Android4.1遥
  8. Android(安卓)免安装应用
  9. 国内最全的Android市场,最全Android软件商
  10. 在Android设备上运行纯java代码