我创建了一个使用了大量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
答案 0 :(得分:1)
你的影像有多大?两者似乎有所不同......如果图像很小,比如10px x 10px,那么GIF通常会变小。对于较大的图像,PNG(几乎?)总是较小的文件大小。
一般情况下,我总是将PNG用于重要的资产,例如游戏中的玩家,按钮等。以及用于背景等的JPEG。
你是如何压缩你的PNG的?如果有的话?