Wie, um die Größe der Vektor-drawable innerhalb von ein button in Android?

Android Studio Vektor-Elemente tools konvertieren von Vektor-drawable PNG-s für Geräte pre-Lollipop, aber ich bekomme wirklich schlechte Qualität PNG-s, wie man hier sehen kann:

Wie, um die Größe der Vektor-drawable innerhalb von ein button in Android?

Was mehr ist, dass der button-hintergrund einfarbig sein soll ist das Licht grün wird, sehen Sie auf der linken Seite, aber die drawable überschreiben:

<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>

Den xml-Code für die drawable ist (der Standardwert aus der 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"/>

Wollte ich eigentlich auch machen, das icon erscheint ein bisschen kleiner durch anpassen der Werte, und ich bemerkte eine Erhöhung der viewport-Abmessungen sinkt das icon-aber ich bin mir nicht sicher, ob ich verstehe, warum.

Also: Wie mache ich das Symbol und die erzeugten PNG, kleiner erscheinen, weniger verschwommen und mit der hintergrund Farbe einstellen, in der Ressourcen-Datei? Danke.

BEARBEITEN: ich schaffte es, den einfarbigen hintergrund mit dem Symbol, indem Sie kombinieren Sie in einer separaten xml-Datei mit layer-Listen:

<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"
    />

Ist das Ergebnis:

Wie, um die Größe der Vektor-drawable innerhalb von ein button in Android?

Ich es geschafft, verringern Sie die Unschärfe, die durch die Erhöhung der Breite und Höhe des Vektor-drawable. Allerdings ohne die android:top|bottom|left|right tags, die drawable wird gestreckt über die gesamte Fläche der Taste. Der zweite button nicht benötigen, um einen hintergrund einfarbig, also bin ich nicht mit der layer-Liste-tags => keine Möglichkeit ein top|bottom|left|right Marge für die drawable.

Wenn ich reduzieren Sie die Größe der Schaltfläche, was ich Tue, ist die Verringerung der anklickbaren Bereich der Schaltfläche.

Meine aktuelle Frage ist, wie die Größe des Vektors drawable in einer Schaltfläche/Umschaltfläche/Optionsfeld ohne die Reduzierung der Größe der Schaltfläche selbst?

UPDATE

Ich konnte nicht einen Weg finden, um die Größe des Vektor-drawable auf pre-API-21-Geräte. Anstatt also machte ich die Knöpfe selber kleiner und erhöht die touch-Oberfläche der einzelnen Tasten.

  • Der viewport ist der Raum, in der das Symbol gezeichnet wird, und die pathData gibt die verschiedenen Koordinaten anweisen, was die Form sein sollte. Wenn, zum Beispiel, Sie hatten einen viewport von 24 durch 24 und ziehe eine gerade Linie von 0,12 Punkt-zu-Punkt 24,12, dann ist das eine horizontale Linie auf halbem Weg nach unten Ihre viewport von einer Seite auf die andere. Wenn Sie die viewport-Größe 48 von 48 aber deine Linie ist immer noch von 0,12 Punkt-zu-Punkt 24,12 dann ist es nicht beginnend auf halbem Weg nach unten mehr und es wird nicht zu erreichen die andere Seite des Ansichtsfensters.
InformationsquelleAutor Valkova.V | 2015-11-13
Schreibe einen Kommentar