textedit - textview and button android example
Restrinja drawableLeft y drawableRight''s height a TextView''s height (5)
Creo que encontré la solución, pero un poco tarde.
Drawable drawable = getResources().getDrawable(R.drawable.s_vit);
drawable.setBounds(0, 0, (int)(drawable.getIntrinsicWidth()*0.5),(int)(drawable.getIntrinsicHeight()*0.5));
ScaleDrawable sd = new ScaleDrawable(drawable, 0, scaleWidth, scaleHeight);
Button btn = findViewbyId(R.id.yourbtnID);
btn.setCompoundDrawables(sd.getDrawable(), null, null, null);
Tengo el siguiente TextView
:
<TextView
android:drawableLeft="@drawable/loading"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Updating Rates" />
Y el resultado es este:
¿Cómo hago que el círculo de carga se pueda dibujar restringiendo proporcionalmente para que su altura coincida con la altura del texto?
Además, si es posible, me gustaría agregar un poco de espacio entre el texto y la imagen.
La solución de Ravi funcionó para mí, pero en algunos dispositivos el dibujo estaba desapareciendo. Arreglado esto mediante la eliminación de la escala.
int bound = (int) (drawable.getIntrinsicWidth() * 0.5);
drawable.setBounds(0, 0, bound, bound);
b.setCompoundDrawables(drawable, null, null, null);
Para hacer la loading
más pequeña simplemente hacer las imágenes más pequeñas.
O use RelativeLayout
y coloque la carga en un ImageView
y ImageView
.
O puedes agregar relleno entre los elementos dibujables y el texto usando android:drawablePadding
setCompoundDrawablePadding()
o setCompoundDrawablePadding()
):
android:drawablePadding="3dp"
Solo tiene que declarar dos vistas separadas imageview y textview, y configurarlas en consecuencia
Una solución mejor será crear un XML en una carpeta dibujable y agregar la imagen a este XML, y mantener scaleType como "fitXY". Ahora puedes hacer este XML como el drawableLeft.