`
l540151663
  • 浏览: 185009 次
  • 性别: Icon_minigender_1
  • 来自: 浙江
社区版块
存档分类
最新评论

Android中Bitmap的java.lang.OutOfMemoryError问题解决(转载)

阅读更多


无用的bitmap最好先Bitmap.recycle()回收空间。

动态计算出图片的inSampleSize。
BitmapFactory.Options opts = new BitmapFactory.Options();
opts.inJustDecodeBounds = true;BitmapFactory.decodeFile(imageFile, opts);
opts.inSampleSize = computeSampleSize(opts, -1, 128*128);
opts.inJustDecodeBounds = false;
try {
  Bitmap bmp = BitmapFactory.decodeFile(imageFile, opts);
  imageView.setImageBitmap(bmp);
} catch (OutOfMemoryError err) {}
分享到:
评论

相关推荐

    处理bitmap内存溢出问题

    当应用程序尝试加载或操作一张超出虚拟机内存预算的`Bitmap`时,系统会抛出`java.lang.OutOfMemoryError: bitmap size exceeds VM budget`异常,导致应用崩溃。为了解决这个问题,开发者需要采取一些策略来优化图片...

    android_内存溢出处理

    在 Android 中,用 bitmap 时很容易内存溢出,报如下错误:Java.lang.OutOfMemoryError:bitmap size exceeds VM budget。解决这个问题可以通过手动干涉 GC 去处理 bitmap 设置图片尺寸,避免内存溢出。 例如: ```...

    ANDROIDBITMAP内存限制OOM,OUTOFMEMORY[文].pdf

    当Android系统尝试分配一块超过其当前可用内存大小的内存时,会抛出`java.lang.OutOfMemoryError: bitmap size exceeds VM budget`异常。从日志可以看出,问题出现在尝试解码一个资源(可能是图片)到Bitmap对象时,...

    Android内存研究

    正确设置这些参数能有效避免 `java.lang.OutOfMemoryError: PermGen space` 或 `java.lang.OutOfMemoryError: Metaspace` 错误。 三、JVM 如何设置虚拟内存JVM 的内存分为堆内存、栈内存、方法区(永久代或元空间)...

    android处理图片内存溢出VM.pdf

    当应用尝试加载超出虚拟机内存预算的大图片时,会抛出一个常见的异常java.lang.OutOfMemoryError: bitmap size exceeds VM budget。图片加载时的内存溢出主要因为大尺寸图片占用的内存远远超过了分配给应用的内存...

    android 处理图片内存溢出 VM.pdf

    当尝试加载大尺寸的图片时,可能会遇到`java.lang.OutOfMemoryError: bitmap size exceeds VM budget`错误,这是因为Android虚拟机(VM)的内存预算有限,尤其是对于较大的图片,如果直接加载原图,会消耗大量内存,...

    Android’s 24 MB memory limit

    E/AndroidRuntime(12517): java.lang.OutOfMemoryError: bitmap size exceeds VM budget ``` 这段日志显示了当尝试分配1MB内存时,由于超出了24MB的限制,导致了应用崩溃。 #### 三、解决方案 针对这个问题,...

    仿微信图片上传,带有拍照,并可以放大缩小预览

    4. 防止`java.lang.OutOfMemoryError`异常: Android系统对每个应用分配了一定量的内存,当加载大图片时容易超出限制。为避免内存溢出,我们应先对图片进行压缩。可以使用`BitmapFactory.Options`的`inSampleSize`...

    Android加载大分辨率图片到手机内存中的实例方法

    当尝试加载大尺寸图片时,如果直接使用BitmapFactory.decodeFile()方法,图片的完整像素会被加载到内存中,占用大量空间,从而可能引发`java.lang.OutOfMemoryError`。 为了理解这个问题,让我们分析一个实际的案例...

    Android 图片添加水印的实现方法

    例如,在尝试为3MB的jpg图片添加水印时,可能会导致`java.lang.OutOfMemoryError`。为解决这个问题,可以考虑以下策略: 1. 使用`BitmapFactory.Options`来解码图片,限制图片的大小,避免一次性加载整个图片到内存...

    Android利用软引用和弱引用避免OOM的方法

    在Android开发中,内存管理是至关重要的,因为过度消耗内存可能会导致应用程序崩溃,表现为OutOfMemoryError(简称OOM)。为了优化内存使用,Java引入了不同级别的引用类型,包括强引用、软引用、弱引用和虚引用。...

    我的应用程序在Sony expira mobile中崩溃,只有另一台所有设备运行良好

    我相信问题出在手机的RAM上,堆栈跟踪显示此错误首先弹出(在堆栈跟踪中),然后导致自定义视图的问题没有被夸大。由以下原因引起:java.lang.OutOfMemoryError:bitmap大小超出VM预算这表明,您...

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

    频繁使用静态的Bitmap或Drawable可能导致`java.lang.OutOfMemoryError: bitmap size exceeds VM budget`异常,因此应谨慎使用。 第三种方法是基于外部存储的数据传输,包括File、SharedPreferences、SQLite和...

Global site tag (gtag.js) - Google Analytics