trapezoid studio example create android android-layout android-drawable

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()




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 );