2012-05-08 17 views
5

In XML possiamo impostare drawableLeft utilizza in questo modo:È possibile impostare DrawableLeft a livello di programmazione?

<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" /> 

come fare stessa cosa a livello di codice?

risposta

16

Sì, utilizzare setCompoundDrawablesWithIntrinsicBounds

e definire drawable per il primo parametro, quindi 0 per tutti gli altri.

Il codice dovrebbe essere simile a questa:

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

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

Se il drawable è stato creato nel codice così allora avete bisogno di usare l'altro setCompoundDrawablesWithIntrinsicBounds metodo che prende 4 drawable, e passare il valore null per tutti, ma la sinistra .

2

Il metodo da utilizzare è setCompoundDrawablesWithIntrinsicBounds. Questo metodo prende tutte e quattro le opzioni disegnabili (a sinistra, in alto, a destra, in basso), quindi se vuoi lasciare solo, passa a null per gli altri.

+0

cosa succede se voglio mettere in centro – user3154663

Problemi correlati