studio - shape size android
Llamar a setCompoundDrawables() no muestra el Compound Drawable (8)
Ejemplo con Kotlin:
val myView = layoutInflater.inflate(R.layout.my_view, null) as TextView
myView.setCompoundDrawablesWithIntrinsicBounds(0, myDrawable, 0, 0)
Después de llamar al método setCompoundDrawables
, el compuesto Drawable no se muestra.
Drawable myDrawable = getResources().getDrawable(R.drawable.btn);
btn.setCompoundDrawables(myDrawable, null, null, null);
¿Alguna idea?
Ejemplo establecido en la parte superior:
view.setCompoundDrawablesWithIntrinsicBounds(
null, getResources().getDrawable(R.drawable.some_img), null, null);
orden de argumentos: (izquierda, arriba, derecha, abajo)
Está en desuso en la API 22.
Este código es útil para mí:
Drawable drawable = ResourcesCompat.getDrawable(getResources(),R.drawable.wen, null);
drawable.setBounds(0, 0, drawable.getMinimumWidth(),
drawable.getMinimumHeight());
tv.setCompoundDrawables(drawable, null, null, null);
La imagen está en blanco porque no tiene límites especificados. Puede usar setCompoundDrawables()
pero antes de especificar los límites de la imagen, use el método Drawable.setBounds()
Necesitaba usar setCompoundDrawablesWithIntrinsicBounds
.
Para mí setCompoundDrawablesWithIntrinsicBounds (Drawable, Drawable, Drawable, Drawable) no funcionó.
Tuve que usar setCompoundDrawablesWithIntrinsicBounds (0, 0, 0, 0) .
Un poco más simple de nuevo:
Drawable image = context.getResources().getDrawable(R.drawable.ic_action );
image.setBounds( 0, 0, image.getIntrinsicWidth(), image.getIntrinsicHeight() );
button.setCompoundDrawables( image, null, null, null );
Usa esto (lo probé). Funciona bien
Drawable image = context.getResources().getDrawable( R.drawable.ic_action );
int h = image.getIntrinsicHeight();
int w = image.getIntrinsicWidth();
image.setBounds( 0, 0, w, h );
button.setCompoundDrawables( image, null, null, null );