2011-10-30 9 views
14

Penso di essermi avvicinato ma con gli errori delle risorse. Ho un file immagine chiamato rock.png in tutte e 3 le cartelle disegnabili.Caricamento dinamico delle immagini R.Drawable using variable

nel mio layout main.xml:

<ImageView android:id="@+id/rockId" android:src="@drawable/rock"></ImageView> 

Nel mio codice:

  int resID = getResources().getIdentifier("rockId" , "id", "com.testing"); 
      ImageView image = (ImageView) findViewById(resID); 

sto ancora vedendo questo nel mio CatLog errore:

10-30 17:36:24.485: WARN/ResourceType(74): Resources don't contain package for resource number 0x7f020000 

Dei pensieri su cosa potrei fare di sbagliato? Eventuali suggerimenti benvenuti

risposta

23

per trovare il controllo:

ImageView image = (ImageView) findViewById(R.id.rockId); 

Per dynamicly caricare un'immagine da drawable io uso questa funzione

public static int getDrawable(Context context, String name) 
    { 
     Assert.assertNotNull(context); 
     Assert.assertNotNull(name); 

     return context.getResources().getIdentifier(name, 
       "drawable", context.getPackageName()); 
    } 

questo restituirà l'id del vostro disegnabile, ora tutto ciò che serve to to è impostare l'immagine nel controllo:

image.setImageResource(int Id); 
+1

È consigliabile utilizzare context.getPackageName()! –

+0

Grazie signore, funziona perfettamente – Hoofamon

+0

Grazie amico, funziona alla grande !! – mrid

Problemi correlati