436 Stimmen

Android:drawableLeft margin und/oder padding

Ist es möglich, den Rand oder die Auffüllung für das Bild festzulegen, das wir mit der Option android:drawableLeft ?

11voto

sadat Punkte 3218

Eine weitere einfache Lösung kann durch die Einfügung der Ebenenliste erreicht werden

layered_drawable

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >
    <item>
        <inset
            android:insetRight="30dp"
            android:drawable="@drawable/ic_air_date">
        </inset>
    </item>
</layer-list>

Schaltfläche in XML

<Button
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:drawableLeft="@drawable/layered_drawable"
    android:text="something" />

8voto

Alexey Zakharov Punkte 24054

Anstelle von Button utiliser LinearLayout con ImageView y TextView innen. In Kinderartikeln wie ImageView y TextView utiliser android:duplicateParentState="true" .

5voto

RayChongJH Punkte 391

Sie sollten die Verwendung von layer-list

Erstellen Sie eine zeichenbare Datei wie diese, nennen Sie sie ic_calendar.xml

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item>
    <shape android:shape="rectangle">
        <solid android:color="@android:color/transparent"/>
    </shape>
</item>
<item android:right="10dp">
    <bitmap android:gravity="center_vertical|left"
        android:src="@drawable/ic_calendar_16dp"
        android:tint="@color/red"
        />
</item>
</layer-list>

Unter Layout-Datei,

<TextView
         android:id="@+id/tvDate"
         android:layout_width="match_parent"
         android:layout_height="wrap_content"
         android:drawableLeft="@drawable/ic_calendar"
         android:textColor="@color/colorGrey"
         android:textSize="14sp" 
    />

5voto

Carolina Punkte 141

Sie können ein Padding für die Schaltfläche verwenden und Sie können mit drawablePadding spielen

 <Button
    style="@style/botonesMenu"
    android:padding="15dp"
    android:drawablePadding="-15dp"
    android:text="@string/actualizarBD"
    android:textAlignment="gravity"
    android:gravity="center"
    android:layout_row="1"
    android:layout_column="0"
    android:drawableTop="@drawable/actualizar"
    android:id="@+id/btnActualizar"
    android:onClick="actualizarBD" />

Sie können ein bestimmtes Padding verwenden, je nachdem wo Sie Ihr Drawable platzieren, mit Android:paddingLeft="10dp" oder Android:paddingBottom="10dp" oder Android:paddingRight="10dp" oder Android:paddingTop="10dp"

3voto

AouledIssa Punkte 1879

Sie können verwenden android:drawableLeft="@drawable/your_icon" um festzulegen, dass die Zeichenfläche auf der linken Seite angezeigt werden soll. Um ein Padding für das Drawable zu setzen, sollten Sie die android:paddingLeft o android:paddingRight um die linke bzw. rechte Auffüllung festzulegen.

android:paddingRight="10dp"
android:paddingLeft="20dp"
android:drawableRight="@drawable/ic_app_manager"

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X