2017-08-27 6 views
13

ベクトル描画可能ファイルを作成するとき、そのサイズをdpに設定できます。デフォルトは24dp x 24dpです。Androidベクターアセット:dp測定は「コンテンツをラップする」問題のみですか?

  1. 私のアプリで24dp x 24dpと異なるサイズのベクトルを使用すると、これらの測定値は性能面で重要ですか?また、21歳未満のAPIに関しては(私は画像を表示するためにapp:srcCompatを使用します)。

  2. より低いAPIが使用され、システムがそれをスケールダウンするとき、ベクトルサイズは重要ですか?

  3. wrap_contentを適用すると、これらの測定値はデフォルトサイズ以外のものを使用しても問題ありませんか?

+0

を使用している場合、サイズは問題ではないはずだから、また、測定用またはテキストのみのベクトル画像サイズをしたいですか? すべての場合、あなたは ** com.intuit.sdp:sdp-android:1.0.4 '** this のput測定用ライブラリをコンパイルすることができます。 –

+0

これはhttps:// stackoverflowに役立つと思います。com/a/35930518/4252667 –

答えて

1

あなたは事前ロリポップバージョンのサポートライブラリをベクトルドローアブルを使用していない場合、私はおそらく、すべてのご質問が、確かにDPのサイズの問題に答えることはできません。これはPNG画像が生成されます、アプリケーションのビルドファイルのAndroidメーカーの一部でない場合

android { 
    defaultConfig { 
     vectorDrawables.useSupportLibrary = true 
    } 
} 

https://android-developers.googleblog.com/2016/02/android-support-library-232.html

を参照してください:

あなたはアプリのGradleのビルドファイルに以下を追加する必要があり、サポートベクトルドローアブルを有効にするには定義されたDPサイズを持つ予定のすべてのLollipop以前のバージョンしたがって、あなたのベクトルが24dpを定義し、それを128dpのグラフィックとして使用している場合、24dpのPNGが使用されるため、Lollipopのプレバージョンではほとんど見栄えが悪くなります。

生成されたPNG画像をここで見つけることができます:

app\build\generated\res\pngs\... 

周りotherwayあなたのベクトルが128dpであり、あなたが縮小PNGグラフィックにも起因して期待ほど完璧に仕上げるない場合があります24dpグラフィックとしてそれを使用している場合スケーリングとあなたはおそらくPNGsが大きすぎるためにいくつかのファイルサイズを無駄にしています。

私は実際にそれがパフォーマンスのために何を意味するのかで見たことがない...

+0

はい、もちろんです。私は、フォールバックPNGの生成を考えていませんでした。したがって、本質的に、PNGフォールバックなしでベクター描画可能オブジェクトを使用している場合、drawable XMLの次元は 'wrap_content'を使用している場合のみ重要です。ありがとう! –

0
  1. あなたがwrap_contentを使用している場合、デバイスは、ご希望サイズ(24dp)にベクトルをレンダリングします。サイズを大きくすると、ビットマップのレンダリングが大きくなり、UIやパフォーマンスに影響します。ラップコンテンツを使用しておらず、ベクター用のサポートライブラリを使用している場合、ベクターサイズは重要ではありません。
  2. vectorDrawables.useSupportLibrary = falseを設定した場合、apkには、APIなしのデバイスに使用されるベクトルの生成ビットマップも含まれます。ビットマップを大きくすると、開く時間が長くなり、メモリが増え、apkのサイズも大きくなります。 UIに必要以上に大きなサイズを使用すると(システムが縮小する)、パフォーマンスにも影響し、画質が低下する可能性があります。あなたがwrap_contentを使用していない#1、で答えられ
  3. あなたはvectorDrawables.useSupportLibrary = true
関連する問題