【发布时间】:2013-04-11 23:22:57
【问题描述】:
我创建了一个使用大量 GIF 的 Android 应用。我收到了一些关于 Galaxy S III 上没有显示图像的反馈,我通过这篇文章意识到我的 GIF 是问题所在:Images not loading on Galaxy S3。
但我有一个担忧。我从一篇文章中借了一些代码来告诉我我正在使用多少内存。当我使用 GIF 时,我会得到这样的值:
I/memory ( 547): App Memory: Pss=12.15 MB
I/memory ( 547): Private=10.52 MB
I/memory ( 547): Shared=8.47 MB
当我切换到 PNG 时,我得到的值如下:
I/memory ( 547): App Memory: Pss=21.33 MB
I/memory ( 547): Private=20.18 MB
I/memory ( 547): Shared=14.02 MB
为什么在使用 PNG 时内存使用量要高得多?
我有 110 张图片,大小从 75x75 到 1048x907(1KB 到 148KB)不等。 GIF 的总大小为 1.39MB,PNG 的总大小 = 1.48MB。至于压缩,我使用 Paint.NET 来保存它们并使用“自动检测”作为位深度。
编辑:我回去看了看,大部分图像都保存为 8 位、256 色。
我猜 GIF 占用更少的磁盘空间这一事实是令人困惑的部分。看起来 Android 应该更轻松地处理 PNG。
我正在使用表面视图并调用 canvas.drawBitmap
【问题讨论】:
-
嗯,这是图像大小和分辨率的典型问题。假设它们相同,PNG 图像可以支持具有透明度的 32 位图像。你知道你的PNG图像是多少位吗?据我所知,我认为最低的 PNG(8 位)应该相当于 GIF。
-
在查看内存使用情况之前比较普通图像大小(文件)怎么样?
标签: android image png gif formats