多くの 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 を使用するとメモリ使用量が非常に多くなるのはなぜですか?
サイズが約 75x75 から 1048x907 (1KB から 148KB) の 110 枚の画像があります。GIF の合計サイズは 1.39MB で、PNG の合計サイズは 1.48MB です。圧縮に関しては、Paint.NET を使用して保存し、ビット深度には「自動検出」を使用しています。
編集:戻って見たところ、ほとんどの画像は8ビット、256色として保存されています。
GIF が必要とするディスク容量が少ないという事実は、紛らわしい部分だと思います。Android は PNG をより簡単に処理する必要があるようです。
サーフェス ビューを使用して canvas.drawBitmap を呼び出しています