Android图片文件大小限制以及如何处理大图片?

时间:2012-06-12 09:09:37

标签: android image

如果我们处理大图像(位图),我们最终会以允许图像大小(为了显示)来碰壁。我想知道是否有人知道这个限制在哪里?这有很多因素,手机的最大堆大小等。

如果要显示大图像并使它们可以互动,还有处理大图像的解决方法吗?

4 个答案:

答案 0 :(得分:2)

要压缩较大的图像尺寸,您可以使用

ByteArrayOutputStream bytes = new ByteArrayOutputStream();
bitmap.compress(Bitmap.CompressFormat.JPEG, 90, bytes);

答案 1 :(得分:1)

如果要全屏显示整个图像,请将其委托给内置应用程序:

Intent i = new Intent(Intent.ACTION_VIEW);
i.setDataAndType(uri, "image/jpeg");
startActivity(i);

如果要将其显示为缩略图等,请阅读this doc

答案 2 :(得分:1)

如果您已经有解码图像数据,则可以将它们存储在存储文件中 然后mmap这个缓冲区。

然后,您可以通过createBitmap function

在此缓冲区上创建子图像(切片)

MMapped内存区域不再计数堆,不受垃圾回收 并且由寻呼子系统绕过通常的文件操作来处理。

答案 3 :(得分:0)

本文讨论了使用大型位图和处理内存约束。它还讨论了导致OutOfMemoryErrors的一些因素,例如堆大小,加载到内存中的其他位图和内存碎片。最后,它提供了一种算法,可以将最大可能的图像文件动态加载到内存中并执行转换。

http://bricolsoftconsulting.com/handling-large-images-on-android/