原文:https://www.cnblogs.com/shiguotao-com/p/5170253.html

一张图片(BitMap)占用的内存=图片长度*图片宽度*单位像素占用的字节数

 图片格式(Bitmap.Config)

 一张100*100的图片占用内存的大小

 ALPHA_8

 图片长度*图片宽度

 100*100=10000字节

 ARGB_4444

 图片长度*图片宽度*2

 100*100*2=20000字节

 ARGB_8888

 图片长度*图片宽度*4

 100*100*4=40000字节

 RGB_565 

 图片长度*图片宽度*2

 100*100*2=20000字节

 

 

减小图片内存的方式只有改变,图片的格式,缩减长宽,改变采样率:

 1 public static Bitmap getBitmapByPath(String path,int setWidth,int setHeight){ 2             //创建一个空的Bitmap 3             Bitmap  bitmap = null; 4             //获取Options对象 5             BitmapFactory.Options options = new BitmapFactory.Options(); 6             //将inJustDecodeBounds属性设置为true,当inJustDecodeBounds属性为true的时候,BitmapFactory只会读取原始的宽高 7             //并不会真正的加载图片 8             options.inJustDecodeBounds = true; 9             //因为上边已经把inJustDecodeBounds属性设置为了true,所以这里不会真正的加载图片,只会读取原始的宽高10             BitmapFactory.decodeFile(path, options);11             //获取图片的原始高12             int height =options.outHeight;13             //获取图片原始的宽14             int width = options.outWidth;15             //声明一个原始的采样率16             int getinSampleSize = 1;17             //如果原始宽高大于目标宽高18             if(height>setHeight || width>setWidth){19                 //取原始宽高的2/120                 int halfHeight = height/2;21                 int halfWidth = width/2;22                 //根据条件来计算采样率23                 while ((halfHeight / getinSampleSize) >= setHeight && (halfWidth / getinSampleSize) >= setWidth) {24                     getinSampleSize *=2;25                 }26             }27             //将计算出来的采样率付给options.inSampleSize,使用使用计算出来的采样率28             options.inSampleSize = getinSampleSize;29             //将inJustDecodeBounds属性设置为false30             options.inJustDecodeBounds = false;31             //因为上边已经将inJustDecodeBounds属性设置为false,这里将真正的加载图片32             bitmap = BitmapFactory.decodeFile(path,options);33             return bitmap;34         }

更多相关文章

  1. QuickSand图片点击后分裂成几份消失效果
  2. android不同分辨率屏幕横向固定适配
  3. 检索Android的图片库,并显示
  4. android附件上传下载(图片,语音,视频)
  5. Android高效显示图片详解(三)
  6. android textview在code(代码)中设置图片 和XML设置图片
  7. android一个小网络图片查看器
  8. 自定义datePicker的实现
  9. Android(安卓)设置应用启动动画

随机推荐

  1. android 在连拍菜单中,增加连拍张数选项
  2. Android高手进阶教程(七)之 ----Android
  3. 在windows下运行CTS
  4. Android Preference的使用总结(很全很详细
  5. Android: EditText设置属性和设置输入规则
  6. android 止横屏和竖屏
  7. Android Binder -什么是binder
  8. android ExpandableListView使用
  9. 用Eclipse Galileo 装 ADT Android SDK
  10. 【Android】Broadcast广播机制总结