安卓 防止Bitmap产生OOM(OutOfMemoryError)错误
来源:互联网 发布:返利网程序源码 编辑:程序博客网 时间:2024/06/05 18:35
//自定义getBitmap方法,防止OOM使程序Crash public static Bitmap getBitmap(Resources res, int id) { BitmapFactory.Options opts = new BitmapFactory.Options(); opts.inSampleSize = 2;//5.设置位图缩放比例 opts.inTempStorage = new byte[1000 * 1024];//2.为位图设置1M的缓存 opts.inPreferredConfig = Bitmap.Config.RGB_565; //3.设置位图颜色显示优化方式 //ALPHA_8:每个像素占用1byte内存(8位) //ARGB_4444:每个像素占用2byte内存(16位) //ARGB_8888:每个像素占用4byte内存(32位) //RGB_565:每个像素占用2byte内存(16位) //Android默认的颜色模式为ARGB_8888,这个颜色模式色彩最细腻,显示质量最高。但同样的,占用的内存 // 也最大。也就意味着一个像素点占用4个字节的内存。我们来做一个简单的计算题:3200*2400*4 bytes // =30M。如此惊人的数字!哪怕生命周期超不过10s,Android也不会答应的。 opts.inPurgeable = true;//4.设置图片可以被回收,创建Bitmap用于存储Pixel的内存空间在系统内存不足时可以被回收 Bitmap bitmap = null; try { bitmap = BitmapFactory.decodeResource(res, id, opts); return bitmap; } catch (OutOfMemoryError e) { Log.e("AndroidRuntime", "getBitmap 发生 OutOfMemoryError,未成功返回bitmap(return null),需再次请求!"); } return bitmap; }
调用:
Bitmap default_head = Util.getBitmap(getResources(), R.drawable.head, opts);
0 0
- 安卓 防止Bitmap产生OOM(OutOfMemoryError)错误
- 安卓 bitmap的对应处理 防止oom
- Drawable装Bitmap,防止OOM
- Bitmap加载防止出现OOM
- Android 之 Bitmap 防止OOM
- 应用中使用Bitmap的时候如何防止OOM的产生
- 应用中使用Bitmap的时候如何防止OOM的产生
- java 产生OutOfMemoryError错误
- 安卓OOM和Bitmap图片二级缓存机制(一)
- 安卓OOM和Bitmap图片二级缓存机制(二)
- 安卓OOM和Bitmap图片二级缓存机制
- 安卓OOM和Bitmap图片二级缓存机制(二)
- 安卓OOM和Bitmap图片二级缓存机制(一)
- 安卓OOM和Bitmap图片二级缓存机制(二)
- 安卓OOM和Bitmap图片二级缓存机制(二)
- Bitmap的使用 防止OOM异常
- Android Bitmap 防止OOM及其他操作
- Android 图片加载Bitmap OOM错误解决办法
- Linux版本openoffice4.1.2和SwfTools的安装(CentOS6.5)
- Android学习之Shared Preferences使用
- ubuntu 10.04 usb wifi 使用wpa_supplicant无法连网问题
- 修改才是写作的本质所在
- iOS开发-数据选择UIPickerView(案例二)
- 安卓 防止Bitmap产生OOM(OutOfMemoryError)错误
- hdu 2717 解题报告
- 管理上的小感悟
- iOS开发-数据选择UIPickerView(案例三)
- spring mvc中的@PathVariable[动态参数类似于spring中的通配符功能]
- 【图像处理】SFR算法详解2
- markdown使用haroopad导出PDF
- imagettftext(): any2eucjp(): invalid code in input string
- CodeForces 361D Levko and Array(二分+dp)