web-dev-qa-db-ja.com

Androidのアイコンにベクタードローアブルと.pngのセットを使用することの違いは何ですか?

Androidシステムアイコンにvector drawablesを使用する場合と.pngのセットを使用する場合)の長所と短所は何ですか?

それらが2つの異なる目的のためのものである場合、それらは何ですか?

16
Vicky Leong

Pngは圧縮された画像です。サイズは固定されています。大きくしたり小さくしたりしようとすると、データを複製または削除する必要があります。大きすぎるか小さすぎると正しく見えません(大きすぎると小さすぎるよりも悪いです)。

ベクタードローアブルは、何かを描画する方法を指示する一連のコマンドです。これらのコマンドはスケーリングするため、適切に実行されたベクタードローアブルは、100x100と同じように1000x1000でも見栄えがします。

Pngの利点は、実行が簡単で、パフォーマンスが比較的速いことです。ベクタードローアブルは遅く(コマンドを実行する必要があります)、適切なものを作成するのが難しくなります。しかし、それはより良くスケーリングします。スケーリングが必要ない場合は、pngがおそらく必要です。もしそうなら、あなたはベクトルが欲しいかもしれません。

また、ある種の画像は他の画像よりもベクターに適していることに注意してください。アイコンはベクターの良い使い方です。写真はうまくいきません。

13
Gabe Sechan

ベクタードローアブルは、異なるフォルダーに複数の画像があるのに対して1つの画像しかないため、apkのサイズを縮小します。それらはまた非常によくスケーリングするので、1つのベクタードローアブルを作成するだけで済みます

ベクトルの欠点は、パフォーマンスが少し重いため、いくつかの場所で使用する必要があることです。

8
tyczj

スケーリングとスペースの要素は別として、ベクトルドローアブルを使用すると、ドローアブルのベクトル情報をリアルタイムで再生および変更できます。つまり、たとえば、変換(図のモーフィングなど)などを実行できます。 PNGのセットを使用すると、静的な表現が得られます。フォームは静的なビットマップにすぎないため、フォームを操作することはできません(トリッキーなことをしない限り)。何が得られるかを知るために このパスモーフィングの例 をチェックしてください。 PNGドローアブルのセットを使用すると、柔軟性とスペースを速度と交換し、ベクトルドローアブルを使用すると、柔軟性とスペースを得ることができますが、速度は低下します(ベクトル変換は、ビットマップスケーリングとは対照的にCPUを集中的に使用するタスクであるため)。

0
josemgu91