android-layout create example - android: drawableLeft margen y / o relleno





8 Answers

TextView tiene una propiedad de android:drawablePadding que debería hacer el truco:

android: drawablePadding

El relleno entre los dibujables y el texto.

Debe ser un valor de dimensión, que es un número de punto flotante añadido con una unidad como "14.5sp". Las unidades disponibles son: px (píxeles), dp (píxeles independientes de la densidad), sp (píxeles escalados según el tamaño de fuente preferido), en (pulgadas), mm (milímetros).

Esto también puede ser una referencia a un recurso (en la forma "@ [paquete:] tipo: nombre") o atributo de tema (en la forma "? [Paquete:] [tipo:] nombre") que contiene un valor de este tipo .

Esto corresponde al símbolo de recurso de atributo global drawablePadding.

shape in studio

¿Es posible establecer el margen o el relleno de la imagen que agregamos con el android:drawableLeft ?




android:drawablePadding es la forma más fácil de darle relleno al icono de drawable, pero no puede darle un relleno específico de un lado, como paddingRight o paddingLeft of drawable icon. Para lograrlo, tiene que profundizar en él. Y si aplica paddingLeft o paddingRight a Edittext , se colocará el relleno a todo el Edittext junto con un icono Edittext .




Sí. use DrawablePadding de la siguiente manera,

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



En lugar del botón, use LinearLayout con ImageView y TextView dentro. En elementos secundarios como ImageView y TextView, use android: duplicateParentState = "true".




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

nota: layout_width debe ser wrap_content y usar paddingLeft paddingRight drawablePadding para controlar la brecha. Si especifica que el valor de layout_width tiene una brecha entre el ícono y el texto, creo que una vez que asigne a layout_width un valor específico, el relleno se medirá.




También arrojaré mi respuesta al ring. Si quieres hacer esto programáticamente puedes hacer lo siguiente.

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

Esto agregará el relleno al final del dibujo, donde el final significará izquierda / derecha dependiendo de si el teléfono está en LTR o RTL.




Si el tamaño del recurso extraíble es fijo, puede hacer lo siguiente:

<Button
    android:background="@drawable/rounded_button_green"
    style="?android:attr/selectableItemBackground"
    android:layout_height="wrap_content"
    app:layout_widthPercent="70%"
    android:drawableRight="@drawable/ic_clear_black_24dp"
    android:paddingRight="10dp"
    android:paddingLeft="34dp"
    tools:text="example" />

La clave aquí es que:

    android:drawableRight="@drawable/ic_clear_black_24dp"
    android:paddingRight="10dp"
    android:paddingLeft="34dp"

Es decir, el tamaño del recurso dibujable más paddingRight es el paddingLeft.

Puedes ver el resultado en este ejemplo.




Intenta usar relleno negativo

Me gusta:

android:paddingLeft="-8dp"





Related