texto studio propiedades plain mostrar inputtype example edittext android android-textview android-drawable

studio - mostrar texto en textview android



Programable a la izquierda dibujable en un TextView (4)

Desde here veo el método setCompoundDrawablesWithIntrinsicBounds (int, int, int, int) se puede usar para hacer esto.

Tengo un textView en xml aquí.

<TextView android:id="@+id/bookTitle" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_weight="1" android:drawableLeft="@drawable/checkmark" android:gravity="center_vertical" android:textStyle="bold" android:textSize="24dip" android:maxLines="1" android:ellipsize="end"/>

Como puedes ver, establezco el DrawableLeft en xml.

Me gustaría cambiar el dibujable en el código.

¿Hay alguna forma de hacer esto? ¿O estableciendo el código drawableLeft en la vista de texto?


Puede usar setCompoundDrawablesWithIntrinsicBounds (int left, int top, int right, int bottom)

establece 0 donde no quieres imágenes

Ejemplo para Dibujar a la izquierda:

TextView textView = (TextView) findViewById(R.id.myTxtView); textView.setCompoundDrawablesWithIntrinsicBounds(R.drawable.icon, 0, 0, 0);

Sugerencia: siempre que conozca algún atributo XML pero no tenga idea de cómo usarlo en el tiempo de ejecución. Simplemente vaya a la descripción de esa propiedad en el documento de desarrollador. Allí encontrará métodos relacionados si se admite en tiempo de ejecución. es decir, para DrawableLeft



static private Drawable **scaleDrawable**(Drawable drawable, int width, int height) { int wi = drawable.getIntrinsicWidth(); int hi = drawable.getIntrinsicHeight(); int dimDiff = Math.abs(wi - width) - Math.abs(hi - height); float scale = (dimDiff > 0) ? width / (float)wi : height / (float)hi; Rect bounds = new Rect(0, 0, (int)(scale * wi), (int)(scale * hi)); drawable.setBounds(bounds); return drawable; }