Ich versuche, eine VectorDrawable
in einer LayerList
ohne Skalierung des Vektors zu verwenden. Zum Beispiel:Wie man Vektor in der Ebenenliste ohne Skalierung zentriert
<layer-list>
<item android:drawable="@color/grid_item_activated"/>
<item android:gravity="center" android:drawable="@drawable/ic_check_white_48dp"/>
</layer-list>
Die ziehbar ic_check_white_48dp
id wie folgt definiert:
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="48dp"
android:height="48dp"
android:viewportWidth="24.0"
android:viewportHeight="24.0">
<path
android:fillColor="#FFFFFFFF"
android:pathData="M9,16.17L4.83,12l-1.42,1.41L9,19 21,7l-1.41,-1.41z"/>
</vector>
Der gewünschte Effekt ist für das Kontrollsymbol in der Ebene ziehbar zentriert werden, ohne Skalierung. Das Problem ist, dass die obige Ebenenliste dazu führt, dass das Prüfsymbol so skaliert wird, dass es der Ebenengröße entspricht.
I kann produzieren den gewünschten Effekt, wenn ich den Vektor ziehbar mit PNGs für jede Dichte und ändern Sie die Schicht-Liste als solche zu ersetzen:
<layer-list>
<item android:drawable="@color/grid_item_activated"/>
<item>
<bitmap android:gravity="center" android:src="@drawable/ic_check_white_48dp"/>
</item>
</layer-list>
Gibt es eine Möglichkeit, dies eine VectorDrawable
mit tun können ?
Es scheint, dass dies einfach ein Fehler in API 21/22 sein kann. Ich habe gerade auf einem API 23-Gerät getestet und der Vektor-Zeichensatz wurde korrekt zentriert. – ashughes
Sie sollten Ihre eigene Frage beantworten und akzeptieren. So ist es sichtbarer und die Frage erscheint nicht als unbeantwortet. –
Ich habe meine Frage nicht beantwortet, weil ich noch keine Antwort auf API 21/22 habe. Meine vorübergehende Lösung bestand darin, PNGs anstelle von Vektoren zu verwenden. In der Hoffnung, immer noch einen Weg zu finden, um Vektoren zum Laufen zu bringen. – ashughes