oom-ImageView bitmap size exceeds VM budget

问题描述

ImageView bitmap size exceeds VM budget

我在一个activity中为一个ImageView设置了从asset中读取出来的图片,ImageView..setImageDrawable(Drawable.createFromStream(getResources()
.getAssets().open("xxx.png"), ""));
图片一般200-500k,第一次显示正常,在模拟器上backpress再进入这个activity时,上一句会出现异常bitmap size exceeds VM budget。
ImageView我声明为 成员变量。
在onDestroyView时,我从根view遍历,把所有view的background drawable调用了setCallback(null). ImageView获取了getDrawable()调用了setCallback(null),仍然会出现异常。

如果我在获取的drawable为BitmapDrawable时调用recycle(),再次进入又会出现try to use recycled bitmap。

解决方案

建议对图片进行缩放处理。

时间: 2024-11-01 06:38:48

oom-ImageView bitmap size exceeds VM budget的相关文章

Android 图片OutOfMemory异常bitmap size exceeds VM budget的原因及解决方法

1.现象 很多朋友应该都碰到过下面这个异常 Java 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 FATAL EXCEPTION: main java.lang.OutOfMemoryError: bitmap size exceeds VM budget at android.graphics.BitmapFactory.nativeDecodeAsset(Native Method) at android.graphics.BitmapFactory.

【android错误】bitmap size exceeds 32bits

使用图片缩放时遇到这么个问题: java.lang.IllegalArgumentException: bitmap size exceeds 32bits 后来一行行查代码,发现原来是 scale 的比例计算错误,将原图给放大了 20 多倍,导致内存溢出所致,重新修改比例值后就正常了

Heap size exceeds notification threshold

转自网络 Tue Oct 16 18:41:06 2007Memory Notification: Library Cache Object loaded into SGAHeap size 5118K exceeds notification threshold (2048K)Details in trace file /oracle/admin/era3/udump/era32_ora_671968.trc     上网检索,说是oracle的一个bug在10g10.2.0.1的各个平台上都

在迁移邮箱时, Mailbox Size Exceeds Target Quota 2.3GB错误的解决

官方说法: http://technet.microsoft.com/en-us/library/dd297937.aspx

android oom 全解析

Android oom 有时出现很频繁,这一般不是Android设计的问题,一般是我们的问题. 就我的经验而言,出现oom,无非主要是以下几个方面: 一.加载对象过大 二.相应资源过多,没有来不及释放. 解决这样的问题,也有一下几个方面: 一:在内存引用上做些处理,常用的有软引用.强化引用.弱引用 二:在内存中加载图片时直接在内存中做处理,如:边界压缩. 三:动态回收内存 四:优化Dalvik虚拟机的堆内存分配 五:自定义堆内存大小 可真有这么简单吗,不见得,看我娓娓道来: 软引用(SoftRe

Android开发中 页面加载一张超大图片(561kb)时出现OOM

今天做项目,发现需要显示一张超大图片,处理过后,还有561Kb      加载的时候,就crash --- OOM      shortMsg:java.lang.OutOfMemoryError      longMsg:java.lang.OutOfMemoryError: bitmap size exceeds VM budget      stackTrace:java.lang.OutOfMemoryError: bitmap size exceeds VM budget      a

Android第三方资源使用之ImageCache

转载请注明出处:王亟亟的大牛之路 引用库的原作者Git:https://github.com/Trinea 现在很多需要动态呈现的View都使用到了H5和WebView,而有些使用的还是传统的异步加载操作,今天写的是传统的View的实现(H5的可以看这篇文章:http://blog.csdn.net/ddwhan0123/article/details/49683799) 我们常用的诸如ImageLoader ,Picasso 都有类似的效果,今天上的是国内大牛Trinea的ImageCache

Android 加载大图片时内存溢出怎么办

  尽量不要使用setImageBitmap或setImageResource或BitmapFactory.decodeResource来设置一张大图, 因为这些函数在完成decode后,最终都是通过java层的createBitmap来完成的,需要消耗更多内存. 因此,改用先通过BitmapFactory.decodeStream方法,创建出一个bitmap,再将其设为ImageView的 source, decodeStream最大的秘密在于其直接调用JNI>>nativeDecodeAs

解析activity之间数据传递方法的详解_Android

1  基于消息的通信机制 Intent--------boudle,extra用这种简单的形式,一般而言传递一些简单的类型是比较容易的,如int.string等详细介绍下Intent机制Intent包含两部分:1 目的[action]-------要去到哪里去2 内容[category.data]----------路上带些什么,区分性数据和内容性数据简单数据传递: 复制代码 代码如下: Intent intent = new Intent(LoginActivity.this, MainAct