2016-11-07 8 views
0

VectorDrawableで使用するためにSVGパスに変換した定型文があります。私はのパスデータとして使用する.svgファイルから直接文字列としてパスデータを抽出しました。 Androidスタジオのデザインウィンドウでは完全に上手く見えますが、私の携帯電話でそれを実行すると、目が荒れて見えます。私の携帯電話はHTC One M8であり、Marshmallowを実行中です。私は彼らがどのように違うの2つのスクリーンショットを添付しています。電話でレンダリングVectorDrawableはAndroidスタジオとは電話機が異なってレンダリングされます

pathData rendered in Android Studio

pathData

enter image description here

ここではpath資源であるXMLファイルから

<path 
    android:name="anger_word" 
    android:fillColor="#FFFFFF" 
    android:pathData="@string/anger_word" /> 
をAndroidのメーカーでレンダリング

そしてここでは、ここで何が起こっている@string/anger_word http://pastebin.com/7MDLiwQh

で実際pathData、ありますか?

ありがとうございます。

答えて

1

これで修正されているかもしれませんが、VectorDrawableレンダリングコードの初期バージョンにはパスデータを解析するいくつかのバグがありました。特に相対パスコマンドを使用するIIRC相対パスコマンドは、小文字のコマンドです。相対パスコマンドは、あなたのパス内のコマンドの大部分であるようです。

私のアドバイスは、絶対パスコマンドのみを使用するようにパスを変換することです(大文字)。これは問題ではないかもしれませんが、試すものです。

パスの作成に使用したエディタはわかりませんが、絶対パスコマンドを使用してパスを出力できるかどうかを確認してください。

できない場合は、それを行うツールを検索できます。私はInkscapeがそれをすると信じています。次の質問の議論を参照してください。それは主に、必要とするものとは逆の変換を議論していることに注意してください。

Is there a tool to convert SVG line paths from absolute to relative?

また、この質問はあまりにも助けになることがあります。

Convert SVG Path to Absolute Commands

+0

ありがとうございます。今夜私が家に帰るときにあなたが提案したことを試してみます。私はかなり新しいAndroid Studioのバージョンを使用しています。 Android Studioを以前にインストールしたことがないコンピュータに過去1か月間にダウンロードされました。これは 'build.gradle'ファイルに入れたこの' android { defaultConfig { vectorDrawables.useSupportLibrary = true } }でしょうか? – skwear

+0

私が話しているバグは、Android StudioではなくOSにあります。 Re 'useSupportLibrary':いいえ、古いAndroidのVectorDrawableサポートにサポートライブラリを使用する必要があるとだけ言います。 –

+0

私はこれを試しました。それは完璧だ。ありがとうございます@ポールレボー。今ではInkscapeとの翻訳と変換を追加することからInkscapeと戦わなければなりませんが、間違いなく実行可能です。私は彼らがこの問題を相対パスで修正しようとしているのだろうかと思います。私はちょうど私のAVDマネージャーをチェックし、私の電話はAPI 23です。それはあまりにも古いことはできませんか? – skwear

関連する問題