2016-11-07 1 views
0

Ich habe etwas stilisierten Text, den ich in SVG-Pfade für die Verwendung in einem VectorDrawable umgewandelt habe. Ich extrahierte die Pfaddaten direkt als Zeichenfolge aus der .svg-Datei, um sie als Pfaddaten in VectorDrawable zu verwenden. Sie sehen im Design-Fenster von Android Studio perfekt aus, aber wenn ich es auf meinem Handy starte, sieht es durcheinander. Mein Telefon ist ein HTC One M8 und läuft Lager Marshmallow. Ich habe zwei Screenshots ihrer Unterschiede beigefügt.VectorDrawle rendert anders im Telefon als in Android Studio

pathData in Android Studio gemacht:

pathData rendered in Android Studio

gegen pathData am Telefon gemacht:

enter image description here

Hier ist die path Ressource aus der XML-Datei

<path 
    android:name="anger_word" 
    android:fillColor="#FFFFFF" 
    android:pathData="@string/anger_word" /> 

Und hier ist die eigentliche pathData, die @string/anger_word http://pastebin.com/7MDLiwQh

ist, was hier geschieht?

Vielen Dank.

Antwort

1

Möglicherweise wurde es jetzt behoben, aber einige ursprüngliche Versionen des VectorDrawable-Rendering-Codes hatten einige Fehler, die Pfaddaten analysierten. IIRC insbesondere mit relativen Pfadbefehlen. Relative Pfadbefehle sind die mit Kleinbuchstaben. Relative Pfadbefehle scheinen die Mehrheit der Befehle in Ihrem Pfad zu sein.

Ich würde versuchen, die Pfade so zu konvertieren, dass nur absolute Pfadbefehle verwendet werden (Großbuchstaben). Dies ist vielleicht nicht das Problem, aber es ist etwas zu versuchen.

Ich weiß nicht, welchen Editor Sie verwendet haben, um Ihre Pfade zu erstellen, aber sehen Sie, ob Sie es erhalten können, um Pfade mit absoluten Pfadbefehlen auszugeben.

Wenn nicht, dann können Sie nach einem Werkzeug suchen, um es zu tun. Ich glaube, Inkscape wird es tun. Sehen Sie sich die Diskussion in der folgenden Frage an. Beachten Sie, dass in erster Linie die umgekehrte Konvertierung zu dem, was Sie benötigen, diskutiert wird.

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

Auch diese Frage kann auch hilfreich sein.

Convert SVG Path to Absolute Commands

+0

Danke. Ich werde versuchen, was du heute Nacht vorgeschlagen hast, wenn ich nach Hause komme. Ich verwende eine Version von Android Studio, die ziemlich neu ist. Im letzten Monat oder so auf einen Computer heruntergeladen, der noch nie eine vorherige Installation von Android Studio hatte. Könnte es auch dieses 'android sein { defaultConfig { vectorDrawables.useSupportLibrary = true } }' das habe ich in meine 'build.gradle' Datei? – skwear

+0

Der Fehler, über den ich spreche, ist im Betriebssystem, nicht Android Studio. Re 'useSupportLibrary': Nein. Das besagt nur, dass die Support-Bibliothek für VectorDrawble-Unterstützung auf älteren Androids verwendet werden soll. –

+0

Ich habe es gerade versucht. Es ist perfekt. Danke @PaulLeBeau. Jetzt muss ich Inkscape einfach bekämpfen, indem ich hier und da Übersetzungen hinzufüge und transformiere, aber definitiv machbar. Ich frage mich, wann sie dieses Problem mit den relativen Pfaden beheben werden. Ich habe gerade meinen AVD-Manager überprüft und mein Telefon ist API 23.Das kann nicht zu alt sein, oder? – skwear

Verwandte Themen