2016-09-21 17 views
1

Illustratorで簡単な再生ボタンイメージを作成し、SVGとして保存し、SVG-to-Drawableコンバータを使用してxmlファイルを作成した後、Android Studioベクターアセットツールを使用してファイルをプロジェクトにインポートします。ただし、インポート時にドロアブルの要素の1つが欠けています。この場合は、円の中央にある白い三角形です。Vector AssetをAndroidスタジオにインポートする際にエラーが発生しました

play_circle.xml(変換されたXMLファイル)

<?xml version="1.0" encoding="utf-8"?> 
<vector xmlns:android="http://schemas.android.com/apk/res/android" 
    android:viewportWidth="94" 
    android:viewportHeight="102" 
    android:width="94dp" 
    android:height="102dp"> 
    <path 
     android:pathData="M85 52.5A38.5 38.5 0 0 1 46.5 91 38.5 38.5 0 0 1 8   
52.5 38.5 38.5 0 0 1 46.5 14 38.5 38.5 0 0 1 85 52.5Z" 
    android:strokeWidth="2" 
    android:fillColor="#424900" 
    android:strokeAlpha="0.29" 
    android:fillAlpha="0.29" 
    android:strokeColor="#000000" 
    android:strokeMiterLimit="10" /> 
<path 
    android:pathData="M71.39 51.63L34.81 30.51" 
    android:fillColor="#ffffff" /> 
</vector> 

play_button.svg, as created in illustrator and how it's intended to be

how it appears after being imported into android studio.Using Android Studio's Vector Asset Studio tool, you can see that the white triangle is already missing.

+0

このxmlをdrawable-v21に追加しましたか? –

+0

はい。明確にするために、Androidスタジオでベクター資産インポートツールを開くと、画像がすでに乱されています(真ん中に白い三角形が表示されていない)。ツールにバグがあるのだろうか? – RustWebDev

+0

元のSVGファイルを追加できますか? – kazhiu

答えて

4

我々は従う必要があり、いくつかのルールがあるSVGするPNGに変換しながら。すべてのコンバータが正常に動作していません。私の場合は、変換中に確認する画像をプレビューできる最高のコンバータサイトを見つけました。無料の登録を求められたら、svgファイルをダウンロードできます。

(何とかアンドロイドスタジオはランダムコンバータによって生成されたすべてのフォーマットやスタイルをインポートすることはできないので、それは必要です)

Convert PNG to SVG

SVGを生成した後、ベクトル描画可能にあなたのSVGを変換するには、以下のツールを使用しますGenerate vector drawable from SVG

あなたの画像に上記の手順を実行しました。そして私は、新しいxmlを作成することであなたのdrawableフォルダに直接コピーできる完璧なベクトルdrawableを作成しました。

<?xml version="1.0" encoding="utf-8"?> 
<vector xmlns:android="http://schemas.android.com/apk/res/android" 
android:width="138dp" 
android:height="151dp" 
android:viewportWidth="138" 
android:viewportHeight="151"> 

<path 
    android:fillColor="#ffffff" 
    android:pathData="M 0.00 0.00 L 136.94 0.00 C 136.87 48.67 136.95 97.33 136.88 146.00 C 137.12 
147.64 136.29 149.93 138.00 151.00 L 0.00 151.00 L 0.00 0.00 Z" /> 
    <path 
    android:fillColor="#c7c9b7" 
    android:pathData="M 136.94 0.00 L 138.00 0.00 L 138.00 151.00 L 138.00 151.00 C 136.29 149.93 
    137.12 147.64 136.88 146.00 C 136.95 97.33 136.87 48.67 136.94 0.00 Z" /> 
<path 
    android:fillColor="#c7c9b7" 
    android:pathData="M 60.36 18.50 C 77.71 16.46 95.72 22.52 108.36 34.56 C 120.55 46.19 127.59 63.12 
    126.81 79.99 C 126.14 101.98 112.25 123.13 91.95 131.82 C 81.01 137.33 68.13 
    138.47 56.13 136.23 C 37.74 133.08 21.41 120.27 13.46 103.43 C 7.33 90.93 6.03 
    76.16 9.58 62.73 C 14.43 43.60 29.48 27.32 48.31 21.29 C 52.28 20.16 56.25 18.96 
    60.36 18.50 Z" /> 
<path 
    android:fillColor="#ffffff" 
    android:pathData="M 46.98 47.96 C 46.74 46.39 47.53 43.71 49.61 44.42 C 67.56 54.69 85.44 65.06 
    103.33 75.43 C 104.44 75.89 105.51 76.60 105.76 77.86 C 105.26 78.65 104.62 
    79.29 103.84 79.80 C 86.11 90.08 68.32 100.27 50.60 110.59 C 49.59 111.11 48.54 
    111.11 47.46 110.58 C 47.35 110.18 47.12 109.38 47.01 108.98 C 46.95 88.64 47.03 
    68.30 46.98 47.96 Z" /> 
</vector> 
0

ベクトルをスケッチで作成すると、このエラーは一般的に発生します。それを修正する方法についてHere's an article

0

ベクターアセットスタジオで私の資産を理解できませんでした。私のシステムはフランス語だったからです。 ,は、svgのパスにある.とは異なり、システムのロケールで自動的に翻訳されるため、英語で必要です。 システムを英語のロケールで動作させてください(OSレベルで - 言語を変更してください)

関連する問題