【问题标题】:Android Load higher resolution image from local drawable-nodpi and zoomAndroid 从本地 drawable-nodpi 加载更高分辨率的图像并缩放
【发布时间】:2014-02-25 05:00:45
【问题描述】:

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

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

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

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

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

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

提前致谢,

斯里尼瓦桑

【问题讨论】:

    标签: android imageview bitmapimage bitmapfactory


    【解决方案1】:

    对于大图片尺寸总是会出现OutOfMemory错误

    原因:

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

    当您的图像在您的活动中加载时,它会占用内存大小来访问图像,并且如果图像具有较大的比例并且它将超过堆大小限制。

    App 会因为 OutOfMemory 异常而崩溃

    解决方案:

    1. 将分辨率 4648*3504 降低到更小的尺寸(宽*高)并增加图像的 dpi,以进行缩放,它会运行良好。

    2. android:largeHeap="true" 在 manifest.xml 中

    通过这个 android:largeHeap="true" 堆大小将翻倍。

    这样您可以避免应用崩溃。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-02-11
      • 1970-01-01
      • 2013-06-08
      • 1970-01-01
      • 1970-01-01
      • 2015-03-12
      • 1970-01-01
      相关资源
      最近更新 更多