Androidシステムアイコンにvector drawables
を使用する場合と.png
のセットを使用する場合)の長所と短所は何ですか?
それらが2つの異なる目的のためのものである場合、それらは何ですか?
Pngは圧縮された画像です。サイズは固定されています。大きくしたり小さくしたりしようとすると、データを複製または削除する必要があります。大きすぎるか小さすぎると正しく見えません(大きすぎると小さすぎるよりも悪いです)。
ベクタードローアブルは、何かを描画する方法を指示する一連のコマンドです。これらのコマンドはスケーリングするため、適切に実行されたベクタードローアブルは、100x100と同じように1000x1000でも見栄えがします。
Pngの利点は、実行が簡単で、パフォーマンスが比較的速いことです。ベクタードローアブルは遅く(コマンドを実行する必要があります)、適切なものを作成するのが難しくなります。しかし、それはより良くスケーリングします。スケーリングが必要ない場合は、pngがおそらく必要です。もしそうなら、あなたはベクトルが欲しいかもしれません。
また、ある種の画像は他の画像よりもベクターに適していることに注意してください。アイコンはベクターの良い使い方です。写真はうまくいきません。
ベクタードローアブルは、異なるフォルダーに複数の画像があるのに対して1つの画像しかないため、apkのサイズを縮小します。それらはまた非常によくスケーリングするので、1つのベクタードローアブルを作成するだけで済みます
ベクトルの欠点は、パフォーマンスが少し重いため、いくつかの場所で使用する必要があることです。
スケーリングとスペースの要素は別として、ベクトルドローアブルを使用すると、ドローアブルのベクトル情報をリアルタイムで再生および変更できます。つまり、たとえば、変換(図のモーフィングなど)などを実行できます。 PNGのセットを使用すると、静的な表現が得られます。フォームは静的なビットマップにすぎないため、フォームを操作することはできません(トリッキーなことをしない限り)。何が得られるかを知るために このパスモーフィングの例 をチェックしてください。 PNGドローアブルのセットを使用すると、柔軟性とスペースを速度と交換し、ベクトルドローアブルを使用すると、柔軟性とスペースを得ることができますが、速度は低下します(ベクトル変換は、ビットマップスケーリングとは対照的にCPUを集中的に使用するタスクであるため)。