1.图片内存溢出

默认情况下,每个android程序的dailvik虚拟机的最大堆空间大小为16M

当加载的图片太多或图片过大时经常出现OOM问题

android 中用bitmap 时很容易内存溢出,报如下错误:Java.lang.OutOfMemoryError

2.解决办法

    public Bitmap matrixBitmapSize(Bitmap bitmap, int screenWidth,              int screenHight) {          //获取当前bitmap的宽高          int w = bitmap.getWidth();          int h = bitmap.getHeight();          Matrix matrix = new Matrix();          float scale = (float) screenWidth / w;          float scale2 = (float) screenHight / h;          // 取比例小的值 可以把图片完全缩放在屏幕内          scale = scale < scale2 ? scale : scale2;          // 都按照宽度scale 保证图片不变形.根据宽度来确定高度          matrix.postScale(scale, scale);          // w,h是原图的属性.          return Bitmap.createBitmap(bitmap, 0, 0, w, h, matrix, true);      }      public Bitmap optionsBitmapSize(String imagePath, int screenWidth,              int screenHight) {          // 设置解析图片的配置信息          BitmapFactory.Options options = new Options();          // 设置为true 不再解析图片 只是获取图片的头部信息及宽高          options.inJustDecodeBounds = true;          // 返回为null          BitmapFactory.decodeFile(imagePath, options);          // 获取图片的宽高          int imageWidth = options.outWidth;          int imageHeight = options.outHeight;          // 计算缩放比例          int scaleWidth = imageWidth / screenWidth;          int scaleHeight = imageHeight / screenHight;          // 定义默认缩放比例为1          int scale = 1;          // 按照缩放比例大的 去缩放          if (scaleWidth > scaleHeight & scaleHeight >= 1) {              scale = scaleWidth;          } else if (scaleHeight > scaleWidth & scaleWidth >= 1) {              scale = scaleHeight;          }          // 设置为true开始解析图片          options.inJustDecodeBounds = false;          // 设置图片的采样率          options.inSampleSize = scale;          // 得到按照scale缩放后的图片          Bitmap bitmap = BitmapFactory.decodeFile(imagePath, options);          return bitmap;      }

更多相关文章

  1. android天气预报
  2. GifView控件,android显示gif图片
  3. Android(安卓)ApiDemos示例解析(83):Graphics->Typefaces
  4. 探讨android图片资源的抖动处理和格式转换
  5. (4.1.12)Android高效加载大图、多图解决方案,有效避免程序OOM
  6. 解析Android消息处理机制:Handler/Thread/Looper & MessageQueue
  7. 2010.12.16——— android listView 显示图片 内存溢出问题
  8. Android(安卓)截取屏幕图片并保存
  9. Android移动应用基础学习——第四章数据存储

随机推荐

  1. Android(安卓)判断一个url是否有效
  2. Android Studio开发调试Installation fai
  3. android 手机利用重力感应摇晃 换歌曲 “
  4. Android网络连接判断与相关处理
  5. 第三篇 (.net socket 与 android )
  6. 华清远见免费博文
  7. Android 实现下载时主界面与详细界面一致
  8. Android 使用HttpClient方式提交POST请求
  9. android 文件的读取与写入以及TextView的
  10. android判断网络的状态断开与否