Android TextView dibujable, ¿cambia el relleno entre dibujable y texto?
drawable padding (3)
Estoy creando un TextView
con un TextView
debajo, en un GridLayout
.
Quiero llevar el dibujo al medio del TextView
; Intenté con setCompoundDrawablePadding(-75)
y solo cambia la posición del texto.
Código actual:
TextView secondItem = new TextView(this);
GridLayout.LayoutParams second = new GridLayout.LayoutParams(row2, col1);
second.width = halfOfScreenWidth;
second.height = (int) (quarterScreenWidth * 1.5);
secondItem.setLayoutParams(second);
secondItem.setBackgroundResource(R.color.MenuSecond);
secondItem.setCompoundDrawablesRelativeWithIntrinsicBounds(0, 0, 0, R.drawable.ic_action_new);
secondItem.setText("Text");
secondItem.setCompoundDrawablePadding(-180);
secondItem.setGravity(Gravity.CENTER);
secondItem.setTextAppearance(this, android.R.style.TextAppearance_Large_Inverse);
gridLayout.addView(secondItem, second);
¿Cómo puedo configurar el texto y dibujar en el medio de TextView
?
Deberá combinar el drawablePadding
y el padding
para obtener el resultado deseado.
Puedes usar layer-list.
Antes de:
Crear xml para shape - shape_rectangle.xml:
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item android:right="5dp">
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<solid android:color="@color/my_color" />
<size
android:width="5dp"
android:height="5dp" />
</shape>
</item>
</layer-list>
Después:
En xml, hay algo como android:right
. Puede agregar también top
, left
, bottom
. De esta manera puede dar, por ejemplo: relleno a izquierda y derecha para dibujar sin cambiar el tamaño de la altura total de textView.
En XML:
android: drawablePadding = paddingValue
o
Programado:
TextView txt;
txt.setCompoundDrawablePadding (paddingValue)
android: drawablePadding es la forma más fácil de dar relleno al icono dibujable, pero no se puede dar un relleno lateral específico como relleno. Derecho o relleno . Icono de dibujo extraíble. Esto proporciona relleno a cada lado del dibujante.