Android从本地drawable-nodpi和zoom加载更高分辨率的图像

时间:2014-02-25 05:00:45

标签: android imageview bitmapimage bitmapfactory

在其中一个原生应用程序中,我们需要加载包含建筑物体系结构的会议地图布局。图像分辨率为4648 * 3504(宽8 *高),文件大小为563KB。我把它放在“res / drawable-nodpi /”文件夹下,以免在多个设备屏幕密度上缩放图像。

我们将在普通视图中加载布局图像。然后,用户点击地图进行缩放,并详细查看布局区域。一旦达到最大缩放级别,我们将允许用户在会议厅中标记其当前位置。 (在地图中,我们将有展厅,用户可以通过点击地图标记其位置)。

为此,当我尝试加载图像时,它显示内存错误。因此,根据developer.android.com中的说明,我根据可用的屏幕宽度和高度缩放图像,图像加载没有任何问题。但是当我缩放图像时,由于将图像缩放到屏幕尺寸,因此缺少布局的清晰度。

有时在布局xml文件中直接加载大图像时,“Bitmap太大而无法上传到纹理中”。

是否有其他方法可以实现上述要求。如何在Imageview中加载高分辨率图像。图库如何处理高质量的大尺寸文件。

任何实现它的输入或方法都会对我有所帮助。

先谢谢,

斯里尼瓦桑

1 个答案:

答案 0 :(得分:-1)

对于大图像尺寸,总会出现OutOfMemory错误

原因:

虚拟堆大小/设备的堆大小,每个设备都有不同的VHS,如:64 MB,128 MB,256 MB等

当您的图像加载到您的活动中时,将占用内存大小以访问图像,如果图像具有大规模,则它将超过堆大小限制。

应用程序将因OutOfMemory异常而崩溃

<强>解决方案:

  1. 将分辨率4648 * 3504降低到更小的尺寸(宽度*高度)并增加图像的dpi,以便进行缩放,并且运行正常。

  2. manifest.xml中
  3. android:largeHeap =“true”

  4. 通过这个android:largeHeap =“true”,heapsize将会翻倍。

    通过此功能,您可以防止应用崩溃。