بروز خطا
   [message]
اشتراک در سوال
رای ها
[dataList]
پرسش و پاسخ

راهنمایی برای ساخت یک لیست ویو از تصاویر (اینترنت)

مدیریت گفتگو
حمید 9 سال پیش
آخرین تغییر: 9 سال پیش

من در حال طراحی یک لیست ویو هستم که قراره تعدادی عکس رو از سرورم بخونه و به همراه یه سری اطلاعات که از 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);
}
}

نظرات

حمید 9 سال پیش
ممنون از پاسختون. من یه مشکل خیلی بزرگ دارم برای کار با لایبرری و ایمپورت کردنشون به پروژه. مثلا همین لایبرری رو توی سرچام پیدا کردم ولی نمیدونم چه جوری باید کار کنم باهاشون. مثلا بعد از ایمپورت کردن این لایبرری چه جوری باید ازشون استفاده کنم؟ امیدوارم سوالم خیلی ابتدایی نباشه :دی

پاسخ‌ها 2

Hossein Lamei Ramandi 9 سال پیش

اگه کتابخونه فایل jar هست اونو دانلود و تو پوشه libs پروژه بریزید و بعد طبق داکیومنتیشن خود لایبرری پیش برید برای مثال فایل jar همین لایبرری پیکاسو رو از لینک  در بخش download دانلود کنید و بعد از کپی کردنش در پوشه libs کافیه هرجا خواستید عکسی رو لود کنید از کد زیر استفاده کنید :

Picasso.with(context).load("http://i.imgur.com/DvpvklR.png").into(imageView);

نظرات

MarAnd 9 سال پیش

سلام ، نمیدونم این روش بهتر هست یا نه ولی می تونین این جوری هم بگین مثلا اگر روند کارتون این جوریه که 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);
}

نظرات


پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .