Ist es möglich, den Rand oder die Auffüllung für das Bild festzulegen, das wir mit der Option android:drawableLeft
?
Antworten
Zu viele Anzeigen?android:drawablePadding
ist der einfachste Weg, um ein zeichenbares Icon aufzupolstern, aber Sie können nicht nur eine Seite aufpolstern wie paddingRight
o paddingLeft
Um das zu erreichen, müssen Sie sich mit dem Thema auseinandersetzen. Und wenn Sie die paddingLeft
o paddingRight
a Edittext
dann wird der gesamte Bereich aufgefüllt Edittext
zusammen mit einem zeichenbaren Symbol.
android:drawablePadding
ist der einfachste Weg, um ein zeichenbares Icon aufzupolstern, aber Sie können nicht nur eine Seite aufpolstern wie paddingRight
o paddingLeft
Um das zu erreichen, müssen Sie sich mit dem Thema auseinandersetzen. Und wenn Sie die paddingLeft
o paddingRight
a EditText
dann wird der gesamte Bereich aufgefüllt EditText
zusammen mit einem zeichenbaren Symbol.
<TextView android:layout_width="match_parent"
android:padding="5dp"
android:id="@+id/date"
android:gravity="center|start"
android:drawableEnd="@drawable/ic_calendar"
android:background="@drawable/edit_background"
android:hint="Not Selected"
android:drawablePadding="10dp"
android:paddingStart="10dp"
android:paddingEnd="10dp"
android:textColor="@color/black"
android:layout_height="wrap_content"/>
Definieren Sie eine Form für Ihren Editiertext und geben Sie ihm einen Abstand. Zum Beispiel
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle" >
<padding
android:left="5dp"
android:right="5dp"
/>
<solid android:color="#F6F6F6" />
<stroke
android:width="1px"
android:color="#C3C3C3" />
<corners
android:bottomLeftRadius="1dp"
android:bottomRightRadius="1dp"
android:topLeftRadius="1dp"
android:topRightRadius="1dp" />
</shape>
Das in dieser Form definierte Padding hilft dabei, dem Drawableleft oder -right Padding zu geben ---------------------- Diese Form auf EditView anwenden
<EditText
android:id="@+id/example"
android:layout_width="fill_parent"
android:layout_height="36dp"
android:layout_marginLeft="10dp"
android:layout_marginRight="10dp"
android:background="@drawable/shape2"
android:drawableLeft="@drawable/icon1"
android:drawablePadding="@dimen/txtDrwblPadding"
android:ems="10"
/>
Die Verwendung dieser definierten Form als Hintergrund verleiht dem EditText einen gewissen Stil und einen Abstand zu drawableLeft.
<TextView
android:layout_width="wrap_content"
android:layout_height="32dp"
android:background="@drawable/a"
android:drawableLeft="@drawable/concern_black"
android:gravity="center"
android:paddingLeft="10dp"
android:paddingRight="10dp"
android:drawablePadding="10dp"
android:text="text"/>
Hinweis: layout_width muss wrap_content sein und paddingLeft paddingRight drawablePadding verwenden, um den Abstand zu kontrollieren. Wenn Sie angeben, layout_width Wert wird Lücke zwischen Symbol und Text hat, ich denke, einmal geben die layout_width einen Wert angeben, wird das Padding messen.
Ich werde meine Antwort ebenfalls in den Ring werfen. Wenn Sie dies programmatisch tun möchten, können Sie Folgendes tun.
final Drawable drawable = ContextCompat.getDrawable(getContext(), R.drawable.somedrawable);
final boolean isLTR = ViewCompat.LAYOUT_DIRECTION_LTR == ViewCompat.getLayoutDirection(this);
final int iconInsetPadding = getResources().getDimensionPixelSize(R.dimen.icon_padding);
final Drawable insetDrawable = new InsetDrawable(drawable, isLTR ? 0 : iconInsetPadding, 0, isLTR ? iconInsetPadding : 0, 0);
Dadurch wird das Padding am Ende der Zeichenfläche hinzugefügt, wobei "Ende" links/rechts bedeutet, je nachdem, ob das Telefon in LTR oder RTL ist.