这是我使用的代码:位图无法加载一个2MB的图像
BitmapFactory.Options options = new BitmapFactory.Options();
options.inSampleSize = 8;
Bitmap imatgeOriginal = BitmapFactory.decodeFile(imageUrl, options);
Bitmap resizedbitmap = Bitmap.createScaledBitmap(imatgeOriginal, 1000, 1000, true);
正如你可以看到我调整与选择的图像,但反正它只是崩溃的最后一行,抛一个NullPointerException。所以imatgeOriginal
是null
为什么会发生这种情况?
一些注意事项:
- 的图像是2 MB(大于16 MB极限以下),大小为1105×1491
- 图像确实存在
- 相同的代码可与较小的图像大于1.5 MB
输出中的logcat:
08-22 15:11:13.249: E/AndroidRuntime(5404): FATAL EXCEPTION: main
08-22 15:11:13.249: E/AndroidRuntime(5404):
java.lang.NullPointerException 08-22 15:11:13.249:
E/AndroidRuntime(5404): at
android.graphics.Bitmap.createScaledBitmap(Bitmap.java:432) 08-22
15:11:13.249: E/AndroidRuntime(5404): at
myclass.onAnimationEnd(productView.java:2126) 08-22 15:11:13.249:
E/AndroidRuntime(5404): at
android.view.animation.AnimationSet.getTransformation(AnimationSet.java:397)
编辑:
发生了一些奇怪的事情,文件映像存在,路由是正确的。然而,android检测到这个图像为CORRUPT或至少它无法打开任何工具(默认画廊,文件浏览器,没有我的应用程序)。 但是,如果我将图像下载到我的计算机上,图像将完美显示。这个应用程序也在iOS中运行,同一图像实际上可见并且看起来没有损坏。
所以我想在Android中加载JPEG文件有一些限制。
你们有类似的问题吗?
一些资源,我发现: http://code.google.com/p/skia/issues/detail?id=69#c2 Unable to load JPEG-image with BitmapFactory.decodeFile. Returns null
发布logcat输出。 –
投票结束这个问题的人不应该这样做。在这个问题上没有任何类似的... omg。 – Reinherd
@ S.D。完成,检查出来。 2126行是我在这篇文章中最后一个。 – Reinherd