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 库。
有很多选择。
以下是开发人员使用的一些最佳库。尝试其中任何一个您填写的易于实施的内容。
- 通用图像加载器:https://github.com/nostra13/Android-Universal-Image-Loader
- 毕加索:http://square.github.io/picasso/
- 滑行:https://github.com/bumptech/glide
你可以找到更多的库,但我觉得这三个库用得最多。
在带有应用程序标签的清单中使用下面的属性
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 的测量值,并缩小图像以减小其大小。你应该试一试 ;)
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 库。
有很多选择。
以下是开发人员使用的一些最佳库。尝试其中任何一个您填写的易于实施的内容。
- 通用图像加载器:https://github.com/nostra13/Android-Universal-Image-Loader
- 毕加索:http://square.github.io/picasso/
- 滑行:https://github.com/bumptech/glide
你可以找到更多的库,但我觉得这三个库用得最多。
在带有应用程序标签的清单中使用下面的属性
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 的测量值,并缩小图像以减小其大小。你应该试一试 ;)