相关疑难解决方法(0)

将largeHeap设置为true有什么好处?

我有一个应用程序,我正在设置近50个类android:largeHeap="true",如下所示.这是一个好习惯吗?

<application
        android:name=".MyApplication"
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="Mall"
        android:largeHeap="true"
        android:logo="@drawable/logo_for_up"
        android:screenOrientation="portrait"
        android:theme="@style/AppTheme" >
</application>
Run Code Online (Sandbox Code Playgroud)

请建议使用它的优点和缺点.

我得到记忆问题,这就是我问这个问题的原因.

android android-largeheap

102
推荐指数
5
解决办法
7万
查看次数

建议避免位图内存不足错误

我正在开发一个Android应用程序.该应用程序有一个包含大量图像的视图.我有一个错误,我会尝试提供尽可能多的信息,希望有人可以给我一些建议.

该应用程序在所有本地测试中都运行良好.但是,我收到了很多来自用户的崩溃:java.lang.OutOfMemoryError: bitmap size exceeds VM budget

这是堆栈跟踪

0       java.lang.OutOfMemoryError: bitmap size exceeds VM budget
1   at  android.graphics.Bitmap.nativeCreate(Native Method)
2   at  android.graphics.Bitmap.createBitmap(Bitmap.java:507)
3   at  android.graphics.Bitmap.createBitmap(Bitmap.java:474)
4   at  android.graphics.Bitmap.createScaledBitmap(Bitmap.java:379)
5   at  android.graphics.BitmapFactory.finishDecode(BitmapFactory.java:498)
6   at  android.graphics.BitmapFactory.decodeStream(BitmapFactory.java:473)
7   at  android.graphics.BitmapFactory.decodeResourceStream(BitmapFactory.java:336)
8   at  android.graphics.BitmapFactory.decodeResource(BitmapFactory.java:359)
9   at  android.graphics.BitmapFactory.decodeResource(BitmapFactory.java:385)
Run Code Online (Sandbox Code Playgroud)

我最大的问题是,即使在旧设备上,我也无法在本地重现问题.

我已经实现了很多东西来尝试解决这个问题:

  1. 没有内存泄漏:我确保根本没有内存泄漏.当我不需要它时,我删除了视图.我还回收了所有的位图,并确保垃圾收集器正常工作.我实现了该onDestroy()方法中的所有必要步骤
  2. 图像大小正确缩放:在获取图像之前,我得到它的尺寸并计算出inSampleSize.
  3. 堆大小:我还在获取图像之前检测最大堆大小,并确保有足够的空间.如果没有足够的,我会相应地重新缩放图像.

用于计算正确inSampleSize的代码

public static int calculateInSampleSize(BitmapFactory.Options options, int reqWidth, int reqHeight)
   {
      // Raw height and width of image
      final int height = options.outHeight;
      final …
Run Code Online (Sandbox Code Playgroud)

heap android bitmap out-of-memory

36
推荐指数
1
解决办法
5万
查看次数

将大图像加载到Bitmap中?

我正在尝试创建一个显示来自摄像头的图像的基本应用程序,但是当我尝试从sdcard加载.jpg时BitmapFactory.decodeFile,它返回null.

它没有给出一个我觉得奇怪的内存不足错误,但完全相同的代码在较小的图像上工作正常.

通用图库如何以极少的内存显示来自相机的巨大图片?

android jpeg image bitmap

9
推荐指数
1
解决办法
9772
查看次数

标签 统计

android ×3

bitmap ×2

android-largeheap ×1

heap ×1

image ×1

jpeg ×1

out-of-memory ×1