2013-04-18 15 views
5

ho un'immagine nella cartella res come questoaccesso un'immagine dinamicamente da res cartella android

enter image description here

voglio accedere questo dinamico come questo

holder.Viewcover.setImageDrawable(Drawable.createFromPath("R.id." + CoverimgUrl.get(position))); 

CoverimgUrl è un elenco che ha due nome immagine uno è book_cover & e un altro è blank_image questa matrice viene generata dinamicamente, quindi come posso impostare questa immagine da quella lista

In una parola come accedere a un'immagine dinamicamente che è in una cartella disegnabile e ho bisogno di ottenere il nome di questa immagine da un elenco di matrice?

risposta

8
Resources res = getResources(); 
String mDrawableName = "image_name"; 
int resourceId = res.getIdentifier(mDrawableName , "drawable", getPackageName()); 
Drawable drawable = res.getDrawable(resourceId); 
icon.setImageDrawable(drawable); 
+0

Grazie mille uomo Up-votato – Anirban

+0

Devo aspettare per 5 minuti – Anirban

1

prima fare CoverimgUrl elenco di numeri interi

List<Integer> CoverimgUrl =new ArrayList<Integer>(); 
      CoverimgUrl.add(R.drawable.book_cover); 
      CoverimgUrl.add(R.drawable.blank_image); 

Poi

holder.Viewcover.setImageResource(CoverimgUrl.get(position)); 
1

createFromPath si aspetta un percorso del file, non si tratta di ID.

È possibile utilizzare il seguente:.

int ID = getResources() getIdentifier ((posizione CoverimgUrl.get), "id", getPackageName()); holder.Viewcover.setImageDrawable (getResources(). GetDrawable (id));

getIdentifier() ottiene l'ID dalla stringa. Quando si utilizza la classe "R", contiene numeri interi statici per gli ID. Quindi R.id.some_name è in realtà un numero intero, che è l'id della risorsa some_name.

una volta ottenuto questo intero con getIdentifier, è possibile utilizzare getResources(). GetDrawable() per ottenere il drawable con l'ID specificato.

Fammi sapere se funziona.

Problemi correlati