2010-11-22 12 views
14

que ya tienen el botón:Cómo cambiar el icono de un botón mediante programación?

<Button 
android:layout_height="wrap_content" 
android:layout_width="fill_parent" 
android:drawableLeft="@drawable/empty" 
android:id="@+id/buttonMyText" 
android:text=" myText" 
android:textSize="20px" 
android:gravity="left"> 
</Button> 

tengo el espectáculo icono de "vacío" en el botón cuando el programa se inicia.

Lo que quiero hacer es cambiar el icono del botón automáticamente de mi código (baja, media y alta) en base a las entradas del usuario

Traté:

Button myButton = bla... bla... bla... 

, pero no puedo averiguar

myButton.(what?) 
+0

Um, botones no tiene iconos? ¿Quieres usar un botón de imagen? – Falmarri

Respuesta

39

Si marca los documentos, verá el código equivalente para cada atributo XML.

Ver aquí: http://developer.android.com/reference/android/widget/Button.html

Buscando drawableLeft espectáculos:

android:drawableLeft: 
setCompoundDrawablesWithIntrinsicBounds(Drawable,Drawable,Drawable,Drawable) 
+5

También, en orden, los parámetros son: 'Left',' top', 'right', y' bottom' Drawables, por lo que puede pasar múltiples Drawables para dibujar DrawLefts y DrawableRights, tops, bottoms, etc. O simplemente pasar en 'null' para los que no estás usando. – kcoppock

+0

hi brotha, el ícono desapareció de mi Actividad, así que funciona :) sin embargo, ¿cómo elegir la imagen que se utilizará? Intenté myButton.setCompoundDrawables (Drawable.createFromPath ("@ drawable/low"), nulo, nulo, nulo); y también sin el "@" y también con solo "bajo" pero aún así desapareció, ya agregué todas las imágenes a mi directorio de dragables – ZiGi

+7

¡SOLUCIONADO! utilicé myButton.setCompoundDrawablesWithIntrinsicBounds (drawable.low, 0, 0, 0); gracias montón compañero! es un salvavidas – ZiGi

6

si desea cambiar el icono en el botón de evento de clic a continuación, tratar este código ...

buttonMyText.setOnClickListener(new OnClickListener() { 

    @Override 
    public void onClick(View arg0) { 
     buttonMyText.setCompoundDrawablesWithIntrinsicBounds(R.drawable.ImageNameHere, 0, 0, 0); 
     buttonMyText.setTextColor(Color.BLACK); 
    } 
}); 
Cuestiones relacionadas