Android JPEG文件似乎太大:OutOfMemoryError

Android JPEG文件似乎太大:OutOfMemoryError,android,out-of-memory,Android,Out Of Memory,我是在这一行得到的: java.lang.OutOfMemoryError: Failed to allocate a 313194252 byte allocation with 11901284 free bytes and 174MB until OOM 我的图片在300dpi时的大小为2480*3508。 是不是太大了?如何使其更小?每当需要加载任何图像时,请始终尝试使用任何ImageLoader库 有很多选择 以下是开发人员使用的一些最好的库。尝试任何一种你能轻松实现的方法 通用图

我是在这一行得到的:

java.lang.OutOfMemoryError: Failed to allocate a 313194252 byte allocation with 11901284 free bytes and 174MB until OOM
我的图片在
300dpi时的大小为
2480*3508

是不是太大了?如何使其更小?

每当需要加载任何图像时,请始终尝试使用任何ImageLoader库

有很多选择

以下是开发人员使用的一些最好的库。尝试任何一种你能轻松实现的方法

  • 通用图像加载器:
  • 毕加索:
  • 滑翔:

您可以找到更多的库,但我觉得这3个库使用得最多。

在清单中,使用下面的属性和应用程序标记

Bitmap bitmap = BitmapFactory.decodeResource(getResources(),R.drawable.handskizze);
也使用

android:largeHeap="true"

首先,我想说你的图像对于移动设备来说太大了。您应该使用Photoshop(或任何其他图像编辑软件)缩小它的尺寸。通过这样做,您可以最小化.apk的大小和缩小图像所需的处理时间


此外,我建议您使用图像加载程序库。我在我的大多数项目中都使用了。它获取要加载图像的ImageView的测量值,并缩小图像的大小。你应该试一试;)

使用通用图像加载器加载过大的图像我很乐意帮助您:)@dhuma1981您能解释为什么图像加载器库比“直接”加载图像更受欢迎吗?原因很多,易于实现,无需担心异步、自动内存处理和缓存。
BitmapFactory.Options o=new BitmapFactory.Options();
o.inSampleSize = 2; //change value from 0 to 8 as per need and image resolution
myBitMap=BitmapFactory.decodeResource(getResources(),R.drawable.handskizze, o);