//
you're reading...
Android, featured, Java, Programmazione

Android: scaricare immagini dal web (con gestione del caching)

Uno snippet per effettuare il download di una immagine da internet (da usare, ad esempio, come sorgente per una ImageView) con la gestione del caching dei file già scaricati e la possibilità di passare delle opzioni per la modifica della qualità delle immagini.


public static Bitmap downloadImage(String fileUrl, BitmapFactory.Options options, Context context){
Bitmap bmImg = null;
URL myFileUrl =null;
try {
myFileUrl= new URL(fileUrl);
} catch (MalformedURLException e) {
e.printStackTrace();
}

try {

String encodedfilename = Base64.encodeBytes(fileUrl.getBytes());

//Controllo presenza della cache
try {
InputStream check = context.openFileInput(encodedfilename);
} catch (FileNotFoundException e) {
// Se non presente, scarico il file

HttpURLConnection conn= (HttpURLConnection)myFileUrl.openConnection();
conn.setDoInput(true);
conn.connect();
InputStream is = conn.getInputStream();


//Salvataggio cache
FileOutputStream fos = context.openFileOutput(encodedfilename, Context.MODE_PRIVATE);
byte[] buffer = new byte[1024];
int len1 = 0;
while ( (len1 = is.read(buffer)) > 0 ) {
fos.write(buffer,0, len1);
}

fos.close();
}

 bmImg = BitmapFactory.decodeStream(context.openFileInput(encodedfilename),null,options);


 } catch (IOException e) {

e.printStackTrace();
 }
return bmImg;
 }


Un rapido esempio di utilizzo:

BitmapFactory.Options options=new BitmapFactory.Options();
//Setto la qualità dell'immagine        
options.inSampleSize = 8;

imageView1.setImageBitmap(downloadImage(URL_IMMAGINE, options,getContext()));

Discussione

2 Risposte to “Android: scaricare immagini dal web (con gestione del caching)”

  1. Ciao Andy,
    grazie per gli utilissimi tutorial.

    Stavo utilizzando il tuo snippet per caricare delle imageview in modo asincrono, ma ho un problema con la chiamata Base64.encodeBytes(…).
    Ricevo errore “Base64 cannot be resolved”, hai suggerimenti su come risolverlo?

    Grazie

    Pubblicato da Filippo | 21/09/2010, 11:59 am

Trackbacks/Pingbacks

  1. Pingback: Android: download di immagini e caricamento in ImageView con thread asincrono « Andy’s Blog - 26/08/2010

Lascia un Commento

Fill in your details below or click an icon to log in:

Logo WordPress.com

You are commenting using your WordPress.com account. Log Out / Modifica )

Foto Twitter

You are commenting using your Twitter account. Log Out / Modifica )

Foto di Facebook

You are commenting using your Facebook account. Log Out / Modifica )

Connecting to %s

Archivio

Argomenti

Follow

Get every new post delivered to your Inbox.

Join 324 other followers