Ist es möglich, den Rand oder die Auffüllung für das Bild festzulegen, das wir mit dem hinzugefügt haben android:drawableLeft
?
quelle
Ist es möglich, den Rand oder die Auffüllung für das Bild festzulegen, das wir mit dem hinzugefügt haben android:drawableLeft
?
Wie Cephus erwähnt, android:drawablePadding
wird das Auffüllen zwischen dem Text und dem Zeichenelement nur erzwungen, wenn die Schaltfläche klein genug ist.
Wenn Sie größere Tasten auslegen, können Sie diese android:drawablePadding
in Verbindung mit android:paddingLeft
und verwendenandroid:paddingRight
auslegen, , um den Text zu erzwingen und nach innen zur Mitte der Schaltfläche zu zeichnen. Durch getrenntes Anpassen der linken und rechten Polsterung können Sie sehr detaillierte Anpassungen am Layout vornehmen.
Hier ist eine Beispielschaltfläche, bei der der Text und das Symbol durch Auffüllen enger zusammengedrückt werden als standardmäßig:
<Button android:text="@string/button_label"
android:id="@+id/buttonId"
android:layout_width="160dip"
android:layout_height="60dip"
android:layout_gravity="center"
android:textSize="13dip"
android:drawableLeft="@drawable/button_icon"
android:drawablePadding="2dip"
android:paddingLeft="30dip"
android:paddingRight="26dip"
android:singleLine="true"
android:gravity="center" />
passwordToggleDrawable
linke Auffüllungslücke größer wird, da kein spezifisches Ziel nur für die linke Zeichnung festgelegt werden kann.TextView hat eine android: drawablePadding- Eigenschaft, die den Trick machen sollte:
quelle
android:drawablePadding
Es wird nur dann eine Polsterlücke zwischen dem Text und dem Zeichenobjekt erstellt, wenn die Schaltfläche klein genug ist, um die beiden zusammenzudrücken. Wenn Ihre Schaltfläche breiter als die kombinierte Breite (für drawableLeft / drawableRight) oder Höhe (für drawableTop / drawableBottom) ist, führt drawablePadding nichts aus.Ich kämpfe gerade auch damit. Meine Schaltflächen sind ziemlich breit und das Symbol hängt am linken Rand der Schaltfläche und der Text ist in der Mitte zentriert. Meine einzige Möglichkeit, dies zu umgehen, bestand darin, einen Rand auf dem Zeichenelement zu backen, indem ich mit Photoshop leere Pixel am linken Rand der Leinwand hinzufügte. Nicht ideal und auch nicht wirklich zu empfehlen. Aber das ist meine Stop-Gap-Lösung für den Moment, kurz bevor TextView / Button neu erstellt wird.
quelle
Ja. Verwenden Sie drawablePadding wie folgt:
quelle
Machen Sie Ihre zeichnbare resources.xml
quelle
android:drawablePadding
Dies ist der einfachste Weg, um einem zeichnbaren Symbol eine Polsterung zu geben. Sie können jedoch keine bestimmte einseitige Polsterung wiepaddingRight
oderpaddingLeft
eines zeichnbaren Symbols angeben. Um dies zu erreichen, müssen Sie sich damit befassen. Und wenn Sie sich bewerbenpaddingLeft
oderpaddingRight
aufEdittext
, wird die PolsterungEdittext
zusammen mit dem zeichnbaren Symbol vollständig platziert.quelle
Definieren Sie eine Form für Ihren Edittext und geben Sie ihm zum Beispiel eine Polsterung
Die in dieser Form definierte Polsterung hilft dabei, die Zeichnung links oder rechts zu polieren. ---------------------- Wenden Sie diese Form auf EditView an
Wenn Sie diese definierte Form als Hintergrund verwenden, erhält Ihr EditText einen Stil plus Rand für drawableLeft.
quelle
android: drawablePadding ist der einfachste Weg, dem zeichnbaren Symbol eine Polsterung zu geben, aber Sie können keine bestimmte einseitige Polsterung wie paddingRight oder paddingLeft of drawable icon geben. Um dies zu erreichen, müssen Sie sich damit befassen. Wenn Sie paddingLeft oder paddingRight auf Edittext anwenden, wird das gesamte Edittext zusammen mit dem Zeichensymbol aufgefüllt.
quelle
Hinweis: layout_width muss wrap_content sein und paddingLeft paddingRight drawablePadding verwenden, um die Lücke zu steuern. Wenn Sie angeben, dass der Wert für layout_width eine Lücke zwischen Symbol und Text aufweist, wird die Auffüllung gemessen, sobald Sie layout_width einen bestimmten Wert geben.
quelle
Ich werde meine Antwort auch in den Ring werfen. Wenn Sie dies programmgesteuert tun möchten, können Sie Folgendes tun.
Dadurch wird die Polsterung am Ende des Zeichens hinzugefügt, wobei das Ende links / rechts bedeutet, je nachdem, ob sich das Telefon in LTR oder RTL befindet.
quelle
Statt
Button
VerwendungLinearLayout
mitImageView
und nachTextView
innen. In untergeordneten Gegenständen mögenImageView
undTextView
verwendenandroid:duplicateParentState="true"
.quelle
Sie sollten die Verwendung einer Ebenenliste in Betracht ziehen
Erstellen Sie eine solche zeichnbare Datei und nennen Sie sie ic_calendar.xml
Unter Layoutdatei,
quelle
Sie können eine Auffüllung für die Schaltfläche verwenden und mit drawablePadding spielen
Sie können eine bestimmte Auffüllung verwenden, je nachdem, wo Sie Ihre Zeichnung platzieren, mit android: paddingLeft = "10dp" oder android: paddingBottom = "10dp" oder android: paddingRight = "10dp" oder android: paddingTop = "10dp"
quelle
Mit können Sie
android:drawableLeft="@drawable/your_icon"
das Zeichen festlegen, das auf der linken Seite angezeigt werden soll. Um eine Polsterung für das Zeichenobjekt festzulegen, sollten Sie dieandroid:paddingLeft
oderandroid:paddingRight
die linke / rechte Polsterung verwenden.quelle
Wenn die Größe der zeichnbaren Ressource festgelegt ist, können Sie Folgendes tun:
Der Schlüssel hier ist:
Das heißt, die Größe der zeichnbaren Ressource plus paddingRight ist paddingLeft.
Sie können das Ergebnis in diesem Beispiel sehen
quelle
quelle
einfach neu machen von:
zu
quelle
Versucht, negative Polsterung zu verwenden
Mögen:
quelle