【Android】Bitmap加载图片错误 java.lang.OutOfMemoryError: bitmap size exceeds VM budget
今天测试程序的时候出现下面的错误日志信息,程序当场挂掉
07-09 14:11:25.434: W/System.err(4890): java.lang.OutOfMemoryError: bitmap size exceeds VM budget
07-09 14:11:25.435: W/System.err(4890): at android.graphics.BitmapFactory.nativeDecodeStream(Native Method)
07-09 14:11:25.435: W/System.err(4890): at android.graphics.BitmapFactory.decodeStream(BitmapFactory.java:511)
07-09 14:11:25.435: W/System.err(4890): at android.graphics.BitmapFactory.decodeFile(BitmapFactory.java:325)
07-09 14:11:25.435: W/System.err(4890): at android.graphics.BitmapFactory.decodeFile(BitmapFactory.java:350)
使用Bitmap加载图片的方法是这样的
vipAvatar = (ImageView) findViewById(R.id.vip_avatar);
File file = new File(Environment.getExternalStorageDirectory()
+ IMAGE_FILE_NAME);
if (file.exists()) {
Bitmap bitmap = BitmapFactory.decodeFile(Environment
.getExternalStorageDirectory() + IMAGE_FILE_NAME);
Drawable drawable = new BitmapDrawable(bitmap);
vipAvatar.setImageDrawable(drawable);
}
在使用BitmapFactory.decodeFile的时候出错了,查找原因
android系统限制,只给图片分配8兆的内存,超过就崩,你图片几十KB,可能是压缩格式的,转换成bitmap就是本来的大小。
增加VM的设置不太现实,如果是在模拟器上没问题,但是考虑到真机使用,问题还是要解决的。
这里使用了一种方法,上述情况没有出现,方法是
在退出Activity时,将bitmap回收
@Override
protected void onDestroy() {
if (bitmap != null && !bitmap.isRecycled())
bitmap.recycle();
super.onDestroy();
}
//////////////////////////////////////////////
原创声明 转载请注明
本文出自 Ray-Ray的博客
文章地址 http://www.cnblogs.com/rayray/p/3180017.html
感谢大家的推荐和收藏
你的支持! 我们的动力!
【Android】Bitmap加载图片错误 java.lang.OutOfMemoryError: bitmap size exceeds VM budget的更多相关文章
- android报错及解决1--Bitmap加载时,报bitmap size exceeds VM budget
报错描述: 用Bitmap加载图片资源时,报错java.lang.OutOfMemoryError: bitmap size exceeds VM budget 原因分析: android系统限制,只 ...
- Android Glide 加载图片
0.借鉴文章地址:http://blog.csdn.net/zivensonice/article/details/51835802 和 http://www.cnblogs.com/zhaoyanj ...
- Android Glide加载图片时转换为圆形、圆角、毛玻璃等图片效果
Android Glide加载图片时转换为圆形.圆角.毛玻璃等图片效果 附录1简单介绍了Android开源的图片加载框架.在实际的开发中,虽然Glide解决了快速加载图片的问题,但还有一个问题悬 ...
- 演化理解 Android 异步加载图片(转)
演化理解 Android 异步加载图片(转)http://www.cnblogs.com/CJzhang/archive/2011/10/20/2218474.html
- java.lang.OutOfMemoryError: bitmap size exceeds VM budget解决方法
1 BitmapFactory.decodeFile(imageFile); 用BitmapFactory解码一张图片时,有时会遇到该错误.这往往是由于图片过大造成的.要想正常使用,则需要分配更少的内 ...
- bitmap size exceeds VM budget
bitmap size exceeds VM budget we can avoid this error by the following parts:1 its not how much ima ...
- wemall app商城源码中基于JAVA的Android异步加载图片管理器代码
wemall doraemon是Android客户端程序,服务端采用wemall微信商城,不对原商城做任何修改,只需要在原商城目录下上传接口文件即可完成服务端的配置,客户端可随意定制修改.本文分享其中 ...
- 实例演示Android异步加载图片
本文给大家演示异步加载图片的分析过程.让大家了解异步加载图片的好处,以及如何更新UI.首先给出main.xml布局文件:简单来说就是 LinearLayout 布局,其下放了2个TextView和5个 ...
- 实例演示Android异步加载图片(转)
本文给大家演示异步加载图片的分析过程.让大家了解异步加载图片的好处,以及如何更新UI.首先给出main.xml布局文件:简单来说就是 LinearLayout 布局,其下放了2个TextView和5个 ...
随机推荐
- Oracle服务器定位CPU使用率高的瓶颈(SQL)
1.首先用TOP命令监控系统资源,如果是AIX系统,就用topas,进入TOP命令的滚动刷新数据时,发现userCPU高达98%!! 保持top的状态下,按shift+p,可以将所有进程按CPU使用率 ...
- 获取日期Date
获取特定时间戳: new Date("2018-06-12").getTime() processDate(){ return { disabledDate(time){ re ...
- 使用python脚本批量删除阿里云oss中的mp4文件
#encoding:utf-8 ''' oss中有一些mp4文件需要删除,首先定位出这些文件放在txt文本中 然后通过python操作oss进行批量删除 ''' import oss2 auth = ...
- [jquery]为jQuery.ajax添加onprogress事件
原理: 给XMLHttpRequest对象的upload属性绑定onprogress方法监听上传过程 var xhr = new XMLHttpRequest(); xhr.upload.onpro ...
- SQLPLUS 命令
定制:sql提示符信息 1.显示SQLPLUS帮助,命令如下:HELP INDEX @ COPY PAUSE SHUTDOWN @@ DEFINE PRINT SPOOL / DEL PROMPT S ...
- easyui的combobox,自动搜索的下拉框
作者:多来哈米 如图,输入关键字,左匹配检索 HTML代码 <input class="easyui-combobox" name="userId" id ...
- Confluence 6 管理站点模板
模板是一个预先定义的页面,这个预先定义的页面可以在创建新页面的时候预先载入.模板可以由用户创建也可以通过蓝图提供.请查看 Page Templates 和 Blueprints 页面中的内容. 管理员 ...
- Confluence 6 数据中心的 SAML 单点登录最佳实践和故障排除
最佳实践 SAML 授权仅仅在有限的时间进行校验.你需要确定运行你的应用的计算机时间与 IdP 的时间是同步的. 如果你应用中的用户和用户组是通过用户目录进行配置的,你通常希望用户来源目录和你的 Id ...
- spring data jpa 全面解析(实践 + 源码分析)
前言 本文将从示例.原理.应用3个方面介绍spring data jpa. 以下分析基于spring boot 2.0 + spring 5.0.4版本源码 概述 JPA是什么? JPA (Java ...
- easyui组件window拖动时超过浏览器顶部则无法拖回
项目研发过程中遇到一个问题,easyui的window可以随意拖动或者放大缩小,但是鼠标只有放在“header”上面时鼠标箭头才会变成四个方向的箭头,也就是只有在这时才能拖动窗口:但是当拖动的窗口超过 ...