2013-09-24 15 views
15

Ho un'applicazione Android in cui sono presenti diverse immagini nella cartella delle risorse. Ora voglio fare una serie di quelle immagini. Ora il mio problema è il seguente: - quando le nostre immagini sono in drawable possiamo fare un array comeCarica immagini dalla cartella delle risorse

int x[] = { 
    R.drawable.ss, 
    R.drawable.aa, R.drawable.sk, 
    R.drawable.xx 
}; 

e così via. come posso creare una matrice di immagini come sopra quando le mie immagini sono nella cartella delle risorse. Voglio creare un array a livello di classe.

+0

si potrebbe fare con un array di stringhe con i nomi dei file – JRowan

+0

uso di ricerca http://stackoverflow.com/questions/7645268/how-to- load-a-image-from-assets – Lebedevsd

risposta

25

Devi leggere immagine per immagine come di seguito:

È possibile utilizzare AssetManager per ottenere l'InputStream utilizzando il metodo open() e quindi utilizzare il metodo() di BitmapFactory decodeStream per ottenere il bitmap.

private Bitmap getBitmapFromAsset(String strName) 
    { 
     AssetManager assetManager = getAssets(); 
     InputStream istr = null; 
     try { 
      istr = assetManager.open(strName); 
     } catch (IOException e) { 
      e.printStackTrace(); 
     } 
     Bitmap bitmap = BitmapFactory.decodeStream(istr); 
     return bitmap; 
    } 
6

Se le immagini sono memorizzati nella cartella di immagini nella directory attivi allora si può ottenere l'elenco di immagine come modo

private List<String> getImage(Context context) throws IOException { 
     AssetManager assetManager = context.getAssets(); 
     String[] files = assetManager.list("image"); 
     List<String> it = Arrays.asList(files); 
     return it; 
} 
+0

Voglio dichiararlo a livello di classe. È possibile questo – suneel

+0

quindi è necessario ottenere il contesto prima, dopo aver ottenuto la risorsa –

+0

puoi spiegare di più con l'esempio – suneel

0

Hai significato sbagliato su drawable e assests. È possibile creare array di "disegnabili", poiché tutti i drawable hanno propri ID in R (come R.dawable.ss), quindi è possibile utilizzare il numero intero specificato per ottenere un disegno se si dispone di un contesto appropriato.

Altri modi di gestione dei file come immagini sono gli asserti. Se vuoi gestire le immagini con i loro id devi aggiungere queste immagini come disegnabili. In altri termini, i file di analisi devono essere gestiti come un semplice file in dir.

È necessario recuperare i file dalle risorse AssetManager am=this.getAssets(); e quindi preparare il file in lettura/scrittura. Se si dispone di immagini è possibile fare qualcosa di simile:

try {  
    Bitmap bmp=BitmapFactory.decodeStream(am.open("009.gif")); 
    imageView.setImageBitmap(bmp); 

} catch (IOException e) { 
    e.printStackTrace(); 
} 
4
// load image from asset folder 
     try { 
      // get input stream 
      InputStream ims = getAssets().open("avatar.jpg"); 
      // load image as Drawable 
      Drawable d = Drawable.createFromStream(ims, null); 
      // set image to ImageView 
      mImage.setImageDrawable(d); 
     } 
     catch(IOException ex) { 
      return; 
     } 

    or you can create drawable array 
    Drawable d []={d}; 
Problemi correlati