JPEG 文件似乎很大:OutOfMemoryError

JPEG File seems to big: OutOfMemoryError

java.lang.OutOfMemoryError: Failed to allocate a 313194252 byte allocation with 11901284 free bytes and 174MB until OOM

我在这一行得到了这个:

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

我的图片在 300dpi. 处的大小为 2480*3508 可能太大了?我怎样才能让它变小?

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

有很多选择。

以下是开发人员使用的一些最佳库。尝试其中任何一个您填写的易于实施的内容。

你可以找到更多的库,但我觉得这三个库用得最多。

在带有应用程序标签的清单中使用下面的属性

android:largeHeap="true"

也用

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);

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

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