2017-11-06 21 views
5

3.0にアップグレードした後、Androidスタジオでベクトル描画可能ファイルの長いパスが表示されるようになりました。Androidスタジオ3.0ベクター描画ツールとLINTツール:ignore = "VectorPath"

警告は言う:パフォーマンスのために悪いです

非常に長いベクトルパス(7958文字)、。 精度を下げること、細部の細部を削除すること、またはベクトル をラスタライズすることを考慮してください。 less ...(⌘F1)長いベクトルパスを使用すると、パフォーマンスが低下します。 pathDataを短くするには、いくつかの方法があります:*(PNGへの変換)の画像をラスタライズ* *いくつかのマイナーな細部を削除するAndroidのメーカー ベクトル変換ツールを使用して*以下 精度を使用して

は、ドキュメントhttps://developer.android.com/guide/topics/graphics/vector-drawable-resources.htmlは私たちを示してい我々のアプリでベクトルドローアブルを使用する方法、およびPNGの上にそれをお勧めしますなど

私は、Android Studioのベクトル変換ツールを使用して、ベクトルドローアブルへのSVGのを変換するため、この優れたサービスされています両方: http://inloop.github.io/svg2android/

ベクターの描画可能な複雑さを減らすために、他のサービスは増えていますか? ベクターのドロアブルを「高度な」方法についてのガイドラインはどこにありますか?

+0

文字通り、約1時間前に['avdo'](https://github.com/alexjlockwood/avdo)というベクトル描画可能最適化ツールをリリースしました。あなたは役に立つかもしれません! –

答えて

4

(代わりにWebツールを、私は svg2vectordrawableを使っていることに注意してください)のように、私が使用例のパイプラインが見え svgo

を通してそれを実行しているあなたはsvg2androidを使用する前に追加することができ、余分なステップは、あります

~$ svgo image.svg --config=config -o image.svg.optimized 
~$ s2v "image.svg.optimized image.xml 

configファイルが(あなたがあなたのニーズに合わせて、それで遊ぶことができます)のようになります。

"plugins": [ 
    { 
     "convertPathData": { 
      "leadingZero": false, 
      "floatPrecision": 2 
     } 
    } 
] 
+0

これは素晴らしい素晴らしいヒントです!どうもありがとう! –

+0

'leadingZero'が存在しなければなりません。さもなければ' InvalidVectorPath' lintが得られます。 – TWiStErRob

+0

'" leadingZero ":false'は、先行ゼロ最適化を無効にします。結果は – marianosimone

2

ベクトルドロアブルをavdoを使用して最適化してみてください!パスの複雑さを軽減するのに役立ちます。

+0

になります。サイズを10.5%縮小しましたが、残念ながら一部のパスはlintによると長すぎます。パスや何かを分割する方法はありますか?または、私はPNGを使うべきですか?パスの1つは1595文字です。 –

関連する問題