راهنمایی برای ساخت یک لیست ویو از تصاویر (اینترنت)
من در حال طراحی یک لیست ویو هستم که قراره تعدادی عکس رو از سرورم بخونه و به همراه یه سری اطلاعات که از jason میگیره در لیست ویو نمایش بده.
در دریافت اطلاعات از jason مشکلی ندارم، مشکل من با منطق خوندن عکسهاست! با استفاده از کلاس DownloadImageTask ایمیج ویو رو پر میکنم. مشکل اینجاست که وقتی اسکرول میکنم به سمت پایین و دوباره میام بالا، عکسهای قبلی که لود شده دوباره لود میشه. برای اینکه از این دوباره کاری (یعنی دانلود عکسهایی که قبلا دانلود شدند) جلوگیری کنم از LruCashe استفاده کردم.
به نظرتون آیا روش بهتری وجود داره؟ ممنون میشم اگر راهنماییم کنید.
private class DownloadImageTask extends AsyncTask<String, Void, Bitmap> {
ImageView bmImage;
String imgKey;
public DownloadImageTask(ImageView bmImage) {
this.bmImage = bmImage;
}
protected Bitmap doInBackground(String... urls) {
String urldisplay = urls[0];
imgKey=urls[1];
Bitmap mIcon11 = null;
try {
InputStream in = new java.net.URL(urldisplay).openStream();
mIcon11 = BitmapFactory.decodeStream(in);
} catch (Exception e) {
Log.e("Error", e.getMessage());
e.printStackTrace();
}
return mIcon11;
}
protected void onPostExecute(Bitmap result) {
bmImage.setImageBitmap(result);
}
}



اگه کتابخونه فایل jar هست اونو دانلود و تو پوشه libs پروژه بریزید و بعد طبق داکیومنتیشن خود لایبرری پیش برید برای مثال فایل jar همین لایبرری پیکاسو رو از لینک در بخش download دانلود کنید و بعد از کپی کردنش در پوشه libs کافیه هرجا خواستید عکسی رو لود کنید از کد زیر استفاده کنید :
Picasso.with(context).load("http://i.imgur.com/DvpvklR.png").into(imageView);

سلام ، نمیدونم این روش بهتر هست یا نه ولی می تونین این جوری هم بگین مثلا اگر روند کارتون این جوریه که url ها رو می گیرین و اضافشون میکنین به یه ArrayList ای تا دانلود بشن با نوشتن یک if از دوباره دانلود شدن عکس ها جلوگیری کنین ، مثل این کدها :
public static ArrayList<String> urls = new ArrayList<String>();
public static void addToDownloadList(String url){
if(urls.contain(url)){
return;
}
urls.add(url);
}
پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .