Vraag android: drawableLinksmarge en / of opvulling


Is het mogelijk om de marge of opvulling in te stellen voor de afbeelding die we hebben toegevoegd met de android:drawableLeft?


290
2017-07-26 17:36


oorsprong


antwoorden:


Zoals cephus vermeldde android:drawablePadding past alleen de opvulling tussen de tekst en het tekenbare aan als de knop klein genoeg is.

Bij het leggen van grotere knoppen die u kunt gebruiken android:drawablePadding in combinatie met android:paddingLeft en android:paddingRight om de tekst te forceren en naar binnen toe naar het midden van de knop te tekenen. Door de linker en rechter opvulling afzonderlijk aan te passen, kunt u zeer gedetailleerde aanpassingen aan de lay-out maken.

Hier is een voorbeeldknop die padding gebruikt om de tekst en het pictogram dichter bij elkaar te duwen dan dat ze standaard zouden zijn:

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

388
2017-07-12 21:44



TextView heeft een android: drawablePadding eigenschap die de truc zou moeten doen:

android: drawablePadding

De opvulling tussen de drawables en de tekst.

Moet een dimensiewaarde zijn, een drijvende-komma-nummer dat is toegevoegd   met een eenheid zoals "14.5sp". Beschikbare eenheden zijn: px (pixels), dp   (dichtheid-onafhankelijke pixels), sp (geschaalde pixels op basis van voorkeur   lettergrootte), in (inch), mm (millimeter).

Dit kan ook een verwijzing naar een resource zijn (in de vorm   "@ [pakket:] type: naam") of themakenmerk (in het formulier   "? [pakket:] [type:] naam") met een waarde van dit type.

Dit komt overeen met het symbool voor globale attributen   drawablePadding.


155
2017-07-26 17:58



android:drawablePadding maakt alleen een padding tussen de tekst en de drawable als de knop klein genoeg is om de 2 samen te drukken. Als uw knop breder is dan de gecombineerde breedte (voor drawableLeft / drawableRight) of hoogte (voor drawableTop / drawableBottom), dan tekent drawablePadding niets.

Ik ben hier nu ook mee bezig. Mijn knoppen zijn vrij breed en het pictogram hangt aan de linkerkant van de knop en de tekst is in het midden gecentreerd. Mijn enige manier om dit nu te omzeilen, was door in een marge op de drawable te bakken door blanco pixels aan de linkerkant van het canvas toe te voegen met photoshop. Niet ideaal, en ook niet echt aanbevolen. Maar dat is mijn stop-gap-oplossing voor nu, in plaats van TextView / Button opnieuw te bouwen.


52
2017-09-19 05:20



android:drawablePadding is de gemakkelijkste manier om opvulling te geven aan het pictogram, maar u kunt geen specifieke opvulling geven zoals paddingRight of paddingLeft van tekenbare pictogram. Om dat te bereiken moet je er in graven. En als je solliciteert paddingLeft of paddingRight naar Edittext dan plaatst het padding op geheel Edittext samen met een aantrekbaar pictogram.


30
2017-07-21 11:02



Maak uw drawbare resources.xml

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_checked="true">
        <inset android:drawable="@drawable/small_m" android:insetLeft="10dp" android:insetTop="10dp" />
    </item>
    <item>
        <inset android:drawable="@drawable/small_p" android:insetLeft="10dp" android:insetTop="10dp" />
    </item>
</selector>

29
2018-05-19 16:04



Ja. gebruik drawablePadding als volgt,

<TextView
        android:id="@+id/tvHeader"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="Settings and Contents"
        android:drawableLeft="@drawable/icon_success"
        android:drawablePadding="10dp" />

28
2018-06-16 06:43



definieer een vorm voor uw edittext en geef deze een opvulling     Bijvoorbeeld

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

De padding die in deze vorm is gedefinieerd, zal helpen bij het opvullen om links of rechts te tekenen     ---------------------- Pas deze vorm toe op EditView

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

Als u die gedefinieerde vorm als achtergrond gebruikt, krijgt uw EditText een stijl plus marge voor drawableLeft.


11
2017-09-22 09:41



Gebruik LinearLayout in plaats van Button met ImageView en TextView binnenin. Gebruik bij onderliggende items als ImageView en TextView android: duplicateParentState = "true".


6
2018-02-13 09:50



Overweeg om een ​​lagenlijst te gebruiken

Maak een tekenbaar bestand zoals dit, noem het als 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>

Onder lay-outbestand,

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

3
2017-12-07 09:52