0

我创建了一个使用大量 GIF 的 Android 应用程序。我收到一些反馈说图像没有在 Galaxy S III 上显示,我使用这篇文章意识到我的 GIF 是问题所在:图像没有在 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

4

1 回答 1

1

你的图片有多大?两者似乎有所不同...如果图像很小,例如 10px x 10px,那么 GIF 通常会变小。对于较大的图像,PNG(几乎?)总是较小的文件大小。

一般来说,我总是将 PNG 用于重要的资产,比如游戏中的玩家、按钮等。而 JPEG 用于背景等。

你是如何压缩你的PNG的?如果有的话?

于 2013-04-18T17:53:16.697 回答