ورود

View Full Version : راهنمایی جهت دانلود عکس و ذخیره در Sdcard



hno2005
چهارشنبه 14 خرداد 1393, 10:33 صبح
سلام دوستان
من یک listview بزرگ دارم که کنارش تصاویری قرار میگیره . این تصاویر ثابت هستن ولی باید دانلود بشن .
دنبال راهی هستم که وقتی یوزر وارد این صفحه میشه ، برنامه عکسها رو دانلود کنه و در یک پوشه در sdcard ذخیره کنه .
چه طوری میشه چنین کاری کرد ؟ من از چندین library هم استفاده کردم مثل Android-Universal-Image-Loader ولی مناسب کار من نبود
ممنون میشم اگه بتونید راهنمیایم کنید
با تشکر

hosseinaryai
چهارشنبه 14 خرداد 1393, 12:54 عصر
از این لایبری استفاده کن


package imageweb;

import java.io.File;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.io.OutputStream;

import android.annotation.SuppressLint;
import android.content.Context;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.os.AsyncTask;
import android.os.Environment;
import android.os.StatFs;
import android.widget.ImageView;
import android.widget.Toast;

public class DownloadImageTask extends AsyncTask<String, Void, Bitmap> {
ImageView bmImage;
String pathsave;
String nameimahe;
boolean saveimg;
Context c;
public DownloadImageTask(ImageView bmImage,
String pathsave,
String nameimahe,
boolean saveimg,
Context c) {
this.bmImage = bmImage;
this.pathsave = pathsave;
this.nameimahe = nameimahe;
this.saveimg = saveimg;
}

@SuppressLint({ "ParserError", "ShowToast"})
protected Bitmap doInBackground(String... urls) {
String urldisplay = urls[0];
Bitmap mIcon11 = null;
StatFs stat = new StatFs(Environment.getExternalStorageDirectory().g etPath());
double sdAvailSize = (double)stat.getAvailableBlocks()
* (double)stat.getBlockSize();
double gigaAvailable = sdAvailSize / 1073741824;

if(gigaAvailable < 3){
Toast.makeText(c.getApplicationContext(), "به علت نداشتن فضای خالی ، عکس ها قادر به بارگذاری شدن نیستند", 5000).show();
}else{
try {
InputStream in = new java.net.URL(urldisplay).openStream();
mIcon11 = BitmapFactory.decodeStream(in);

if(saveimg){
OutputStream outStream = null;
File file = new File(pathsave, nameimahe + ".JPEG");
try {
outStream = new FileOutputStream(file);
mIcon11.compress(Bitmap.CompressFormat.JPEG, 100, outStream);
outStream.flush();
outStream.close();
}
catch(Exception e){}
}else{}

} catch (Exception e) {
//Log.e("Error", e.getMessage());
//e.printStackTrace();
}
}


return mIcon11;

}

protected void onPostExecute(Bitmap result) {
bmImage.setImageBitmap(result);
}

}