2012-06-08 20 views
17

Ciao ho un myshape.xml, contiene un <shape> e non posso impostare un androide: id per forme.Android set forma XML come disegnabile programmaticamente

Nel mio codice voglio impostare lo sfondo di una vista a questo file usando

catAll.setBackgroundDrawable(getResources().getDrawable(R.id......???));

dove myshape.xml non si presenta nel mio file R perché non ha id. e non posso impostare l'id per obiettare.

Nel mio XML si imposta la forma semplicemente digitando il nome della risorsa drawable. Ma ho bisogno di farlo a livello di programmazione.

risposta

29

Non è necessario ottenere il drawable da soli. Usare questo invece:

catAll.setBackgroundResource(R.drawable.myshape); 

Per riferimento futuro, se si fa desiderio di ottenere il mastio drawable presente che drawable dal vivo nel R.drawable namespace. Così il vostro codice sarebbe diventato:

getResources().getDrawable(R.drawable.myshape); 

Questo è simile a quello che fai nella tua XML:

@drawable/myshape 

invece di

@id/myshape 
+0

Ricordando lo spazio dei nomi "R.drawable" è stata la chiave , grazie K-ballo! –

+0

ID getDrawable (id) ora privato. –

Problemi correlati