【问题标题】:ImageView not able to show high resolution imagesImageView 无法显示高分辨率图像
【发布时间】:2014-10-05 04:13:23
【问题描述】:

我正在从 android 资源文件夹访问图像。 我正在使用 asynctask 加载图像。

我第一次使用分辨率为 1024*768 的图像时,应用会打开,并一张一张地显示在 imageview 中。

第二次, 对于实验,我使用了分辨率为 1920*1080 的图像,该应用程序出现运行时错误并强制关闭。 1280*720 的图像分辨率也是如此。

但它实际上以 1024*768 分辨率运行 为什么会这样????

我没有发布代码,因为它似乎没有程序问题。

【问题讨论】:

  • 如果它没有“程序问题”那么它不属于 SO。
  • @Mighter 它是 programatical issue 尽管 OP 说它不是。只是他得到了OOM。
  • 它显示内存不足,但我的问题是为什么会在高清分辨率下发生这种情况???
  • 这是因为你的内存不足。这就是“内存不足错误”的原因。因为高分辨率图像比小分辨率图像使用更多内存。

标签: android image imageview


【解决方案1】:

你得到Out Of Memory exception只是因为你的图片很大,考虑这个计算:

为了显示ARGB_8888 中的每个像素,我们使用 4 个字节,所以:

your first  image: 1024 * 768 * 4 = 2MB 
your second image: 1920 * 1080* 4 = 6MB
your third  image: 1280 * 720 * 4 = 3MB

我不知道您将多少张图片加载到您的RAM,但您的RAM 是有限的,至少是16MB,因此对于其他 4-5 张图片,您将没有RAM 其他对象.看看

Loading Large Bitmaps Efficiently 解决您的问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-10-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-11-20
    相关资源
    最近更新 更多