Ich habe einen Workaround, der für Sie funktionieren kann oder auch nicht: anstatt <scale>
zu verwenden
, probiere <inset>
. Sie können eine Kombination aus dem <item>
s android:top
/ android:bottom
/ android:left
/ android:right
und dem <inset>
's android: insetXXX verwenden, um das Bild zu skalieren
Sie können beispielsweise die Seiten jedes Einfügewerts relativ zu den Abmessungen des Quellbilds festlegen. Wenn Sie beispielsweise ein Bild mit 64 Pixel Breite haben und es um 50% reduzieren möchten, können Sie für jede Seite (64/4 = 16)
wählenEs ist nicht gerade die Schuld der LayerLists. ScaleDrawable hängt außerdem von der Ebene Zeichenebene ab, wie (kurz) sowohl in den Drawable Resources als auch in der ScaleDrawable-Referenz erwähnt.
Es scheint, dass es keine Dokumentation darüber gibt, wie ScaleDrawable die Ebene interpretiert.
Es scheint keine Möglichkeit zu bestehen, die Ebene eines Zeichensatzes in XML festzulegen, was die Tatsache widerspiegelt, dass der primäre Anwendungsfall für ScaleDrawable darin besteht, die Größe eines Zeichenblattes zu animieren. Daher müssen Sie die Ebene des Zeichensatzes in Ihrem Code festlegen.
Ich bin mir sehr bewusst, dass Sie ScaleDrawable hier verwenden, da es eine leistungsfähigere Möglichkeit zum Stapeln von Zeichnungsdaten bietet, indem Sie sie positionieren und ihre Größe definieren können.
Tags und Links android