Die Android Studio Vector Assets Tools konvertieren Vektor ziehbar zu PNG-s für Geräte Pre-Lutscher, aber ich bekomme wirklich schlechte Qualität PNG-s, wie Sie hier sehen können:Wie wird die Größe von Vektor innerhalb einer Schaltfläche in Android-Zeichen festgelegt?
Was, dass die mehr ist, ist Taste Hintergrund feste Farbe soll dieses Licht grün sein, die Sie auf der linke Seite sehen, aber die ziehbar überschreibt:
<item android:state_checked="true"
android:drawable="@drawable/show">
<shape android:shape="rectangle">
<corners android:bottomRightRadius="8dp"/>
<solid android:color="@color/waveComponentGreen"/>
</shape>
</item>
<item android:state_checked="false"
android:drawable="@drawable/hide">
<shape android:shape="rectangle">
<corners android:bottomRightRadius="8dp"/>
<solid android:color="@color/waveComponentGreen"/>
</shape>
</item>
die xml für die ziehbar ist (der Standard aus dem Material Icons):
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportWidth="24.0"
android:viewportHeight="24.0">
<path
android:fillColor="#FF000000"
android:pathData="M8.59,16.34l4.58,-4.59 -4.58,-4.59L10,5.75l6,6 -6,6z"/>
Ich wollte auch das Symbol erscheint ein wenig kleiner machen, indem die Werte zwicken und ich bemerkte, verringert das Symbol, um die Ansichtsfenster Dimensionen zu erhöhen, aber ich bin nicht sicher, ob ich verstehen, warum.
Also: Wie mache ich das Symbol und die generierte PNG kleiner, weniger verschwommen und mit der Hintergrundfarbe in der Ressource-Datei festgelegt? Vielen Dank.
EDIT: Ich es geschafft, die einfarbigen Hintergrund mit dem Symbol zu erhalten, indem sie in einer separaten XML-Datei mit Schicht-Listen kombiniert:
<layer-list
xmlns:android="http://schemas.android.com/apk/res/android" >
<item>
<shape android:shape="rectangle">
<corners android:bottomRightRadius="10dp"/>
<solid android:color="@color/waveComponentGreen"/>
</shape>
</item>
<item android:drawable="@drawable/show"
android:top="10dp"
android:bottom="10dp"
android:left="10dp"
android:right="10dp"
/>
Das Ergebnis ist:
Ich habe es geschafft, die Unschärfe zu reduzieren, indem Sie die Breite und Höhe der Vektor zeichnbar. Ohne die Tags android:top|bottom|left|right
erstreckt sich das Zeichen über den gesamten Bereich der Schaltfläche. Die zweite Schaltfläche muss keine Hintergrundfarbe haben, daher verwende ich nicht die Layerlisten-Tags => keine Möglichkeit, einen top|bottom|left|right
Rand für das Zeichen festzulegen.
Wenn ich die Größe der Schaltfläche reduzieren, was ich mache, ist die klickbare Fläche der Schaltfläche zu reduzieren.
Meine aktualisierte Frage ist, wie man die Größe des Vektors einziehbar innerhalb eines Knopfes/Wechselknopfes/Radiobuttons einstellt, ohne die Größe des Knopfes selbst zu reduzieren?
UPDATE
ich konnte nicht einen Weg finden, um den Vektor ziehbar auf Pre-API 21 Geräte zu ändern. Also habe ich stattdessen die Buttons selbst verkleinert und den Touchbereich jedes Buttons vergrößert.
Das Ansichtsfenster ist das Feld, in dem das Symbol gezeichnet wird, und pathData gibt die verschiedenen Koordinaten an, die angeben, wie die Form aussehen soll. Wenn Sie beispielsweise ein Ansichtsfenster von 24 mal 24 haben und eine gerade Linie von Punkt 0,12 bis Punkt 24,12 ziehen, dann ist dies eine horizontale Linie, die auf halbem Weg durch Ihr Ansichtsfenster von einer Seite zur anderen gezogen wird. Wenn Sie die Größe des Darstellungsbereichs auf 48 mal 48 ändern, die Linie aber immer noch von Punkt 0,12 zu Punkt 24,12 ist, beginnt sie nicht mehr auf halbem Weg und sie wird nicht auf die andere Seite des Darstellungsbereichs gelangen. –