2011-02-07 8 views

Respuesta

109

Uso

button.setCompoundDrawablesWithIntrinsicBounds(left, top, right, bottom);

Establece los dibujables (si corresponde) para que aparezca a la izquierda, arriba, a la derecha y debajo del texto. Use 0 si no desea un Drawable allí. Los límites de Drawables se establecerán en sus límites intrínsecos.

Si utiliza

button.setCompoundDrawables(left, top, right, bottom);

Establece los dibujables (si los hay) para aparecer a la izquierda de, arriba, a la derecha, y por debajo del texto. Use null si no quiere un Drawable allí. Los Drawables ya deben haber tenido setBounds(Rect) llamado.

+0

El método es muy correcto, pero quiero establecer la Identificación del recurso en lugar de dibujable. ¿Hay alguna manera de hacer lo mismo? – Maneesh

+3

Sí. Utilizar recursos resources = getResources(); Drawable drawable = resources.getDrawable (id); –

+0

Tanmay, estoy tratando de hacer esto también y todavía no estoy seguro de cómo establecer drawableTop usando el código. Veo cómo obtener un dibujable, pero ¿cómo configurarlo en el botón? – Otto

2
 Button button = (Button) findViewById(R.id.button); 
     button.setCompoundDrawables(left, top, right, bottom); 
+0

El método es muy correcto, pero quiero fijar Identificación de recursos en lugar de dibujable. ¿Hay alguna manera de hacer lo mismo? – Maneesh

20
final Drawable drawableTop = getResources().getDrawable(R.drawable.btn_check_buttonless_on); 

btnByCust.setOnClickListener(new OnClickListener() { 

@Override 
public void onClick(View v) { 


btnByCust.setCompoundDrawablesWithIntrinsicBounds(null, drawableTop , null, null); 

     } 
    }); 
2

utilizo este código para su uso en el botón "Theme.Holo" una "imagen personalizada" a la izquierda y con cambiarlo (la imagen) con una función que se llama desde diversas maneras.

protected void app_dibujarLogojuego() { 
    if(bitmaplogojuego!=null){ 
     bitmaplogojuego.recycle(); 
     bitmaplogojuego=null; 
    } 
    Drawable LOGO = null; 
    if(verjuego.equals("COSA1")){ LOGO = getResources().getDrawable(R.drawable.img_logo_COSA1); } 
    if(verjuego.equals("COSA2")){ LOGO = getResources().getDrawable(R.drawable.img_logo_COSA2); } 
    if(verjuego.equals("COSA3")){ LOGO = getResources().getDrawable(R.drawable.img_logo_COSA3); } 
    if(verjuego.equals("COSA4")){ LOGO = getResources().getDrawable(R.drawable.img_logo_COSA4); } 

    BUTTON_DECLARED_ID.setCompoundDrawablesWithIntrinsicBounds(LOGO, null , null, null); 
} 
0
btn.setBackgroundResource(R.drawable.your_image_name_here); 
+7

-1 establecerá la imagen de fondo, no 'drawableTop'! –

31
Drawable top = getResources().getDrawable(R.drawable.image); 
button.setCompoundDrawablesWithIntrinsicBounds(null, top , null, null); 
+0

Chicos esto está funcionando, gracias –

Cuestiones relacionadas