hno2005
چهارشنبه 14 خرداد 1393, 11:33 صبح
سلام دوستان 
من یک listview بزرگ دارم که کنارش تصاویری قرار میگیره . این تصاویر ثابت هستن ولی باید دانلود بشن . 
دنبال راهی هستم که وقتی یوزر وارد این صفحه میشه ، برنامه عکسها رو دانلود کنه و در یک پوشه در sdcard ذخیره کنه . 
چه طوری میشه چنین کاری کرد ؟ من از چندین library هم استفاده کردم مثل Android-Universal-Image-Loader ولی مناسب کار من نبود 
ممنون میشم اگه بتونید راهنمیایم کنید 
با تشکر
hosseinaryai
چهارشنبه 14 خرداد 1393, 13: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);
     }   
    
}
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.