2011-09-11 15 views
12

Estoy tratando de establecer una imagen en el lado derecho de mi botón después de haber hecho clic en el botón. Quiero hacer esto por código.¿Cómo puedo configurar el recurso drawableRight a través del código?

He visto cómo cambiar el recurso de fondo mediante el código, pero no puedo encontrar ningún ejemplo que muestre cómo cambiar los lados mediante el código. ¿Es posible?

+0

¿A qué te refieres con cambio lateral ?, ¿tu imagen estaba en el lado izquierdo del botón antes de hacer clic en el botón? –

+0

Está en el lado derecho y es un punto rojo. Quiero cambiarlo de verde al hacer clic. (Es un botón de activación) –

+4

setCompoundDrawablesWithIntrinsicBounds pregunta relacionada: http://stackoverflow.com/questions/4250923/how-to-change-a-buttons-icon-programmatically – Erdal

Respuesta

29

Es necesario utilizar el método

public void setCompoundDrawables (Drawable left, Drawable top, Drawable right, 
Drawable bottom) 

con nula para cualquier que no son necesarios.

+0

como ha señalado Erdal ... – eyespyus

+6

Pude hacerlo con esto: \t \t \t \t button_drill.setCompoundDrawablesWithIntrinsicBounds (0, 0, R.drawable.ic_button_green, 0); o debería usar Drawables y convertir mi recurso en un dibujable? –

+7

Lo más probable es que quieras usar 'setCompoundDrawablesWithIntrinsicBounds'. Con el otro método, debe llamar a 'setBounds' en los Dratables antes de pasarlos como parámetros; de lo contrario, no se mostrarán correctamente (no serán visibles en absoluto) – janos

7

Por lo general, se puede cambiar utilizando este

Drawable draw = getResources().getDrawable(R.drawable.facebook); 
myButton.setCompoundDrawablesWithIntrinsicBounds(null, null, draw, null); 

Tenga en cuenta que se puede perder el texto del botón.

Cuestiones relacionadas