0

シンプルな壁紙アプリを作成しています。res フォルダーにリソースとして壁紙画像 (.jpg) を保存します。ユーザーにサムネイルのグリッドを表示します。これは、リソース (.jpg) としても res として個別に保存します。このグリッドのスクロールをスムーズかつ高速にしたい。私の質問は、アダプターを使用してグリッドビューをロードするときに、getView メソッドでリソースをビットマップに変換してから、グリッド内の各 imageView にロードすることです。そもそもサムネイルを res フォルダーに .bmp として保存した方が速くなりますか? また、実行時に大きな壁紙を操作するのではなく、手動でサムネイルを作成しました。各サムネイルは幅 120 ピクセルにスケーリングされ、グリッドは 120x120 のイメージビューで構成されます。では、これらの画像をすばやく効果的に読み込むにはどうすればよいのだろうかと考えていました。アダプターを Asyntask 内の gridview に設定していますが、改善が見られません。

4

2 に答える 2

2

非可逆画像圧縮である JPEG は、通常、サイズのトレードオフに対して最高の品質を提供します。高品質の画像を保存しようとしている場合は、ほぼ確実に JPEG を使用したいと思うでしょう。

PNG には、透明度を操作できるなどの便利な機能があり、単純なブロック カラー画像を出力する場合は、ファイル サイズが非常に小さくなります。

ただし、壁紙などの写真品質の画像を PNG として作成し始めた瞬間に、巨大なファイル サイズが表示されます。これは、モバイル デバイスではあまり楽しくなく、エンド ユーザーに高く評価されることもありません。また、ファイルが大きいほど、より多くのシステム リソース (CPU 時間と RAM) が必要になる傾向があり、モバイル デバイスではこれらのリソースは非常に貴重です。

おそらくサムネイルには PNG を使用し、フルサイズの画像には JPEG を使用することをお勧めしますが、どちらが最小のファイルを作成するかを確認することをお勧めします。 800b PNG をレンダリングするリソースはほとんどありません。

于 2012-09-23T11:18:07.690 に答える
1

画像を bmp ファイル形式に変更すると、パフォーマンスが少し向上する可能性があります (JPG はレンダリング時に解凍する必要がある圧縮ビットマップ画像であるため) が、通常、ファイルサイズを大幅に増やす価値はありません。

レンダリングとファイルサイズの両方が軽いため、PNG ビットマップ形式を使用することをお勧めします。

ListView でのレンダリングについては、この質問とこのコード プロジェクトを参照してください。

于 2012-09-23T11:16:10.063 に答える