2012-05-08 9 views
5

En XML podemos establecer drawableLeft utilizando de esta manera:¿Es posible establecer drawableLeft mediante programación?

<Button 
    android:id="@+id/previewBtn" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:background="@drawable/white_btn" 
    android:drawableLeft="@drawable/green_circle" 
    android:drawablePadding="16dp" 
    android:text="Button" /> 

cómo hacer lo mismo mediante programación?

Respuesta

16

Sí, utilice setCompoundDrawablesWithIntrinsicBounds

y definir la estirable para el primer parámetro, a continuación, 0 para todos los demás.

El código debe ser algo como esto:

Button b = findViewById(R.id.myButton); 

b.setCompoundDrawablesWithIntrinsicBounds(R.drawable.myDrawable, 0, 0, 0); 

Si su dibujable fue creado en código como bueno, entonces es necesario utilizar otro método setCompoundDrawablesWithIntrinsicBounds que tiene 4 dibujables, y pasar nula para todos, pero la izquierda .

Cuestiones relacionadas