آموزش های این وب سایت به صورت رایگان در دسترس است. اطلاعات بیشتر
مشکل عدم دسترسی خریداران پیشین به برخی آموزش ها برطرف شد
بروز خطا
   [message]
اشتراک در سوال
رای ها
[dataList]

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

حمید  8 سال پیش  8 سال پیش
0 0

من در حال طراحی یک لیست ویو هستم که قراره تعدادی عکس رو از سرورم بخونه و به همراه یه سری اطلاعات که از 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);
}
}
+1 0
برای راحتی کار میتونید از لایبرری پیکاسو لینک استفاده کنید . (8 سال پیش)
0 0
ممنون از پاسختون. من یه مشکل خیلی بزرگ دارم برای کار با لایبرری و ایمپورت کردنشون به پروژه. مثلا همین لایبرری رو توی سرچام پیدا کردم ولی نمیدونم چه جوری باید کار کنم باهاشون. مثلا بعد از ایمپورت کردن این لایبرری چه جوری باید ازشون استفاده کنم؟ امیدوارم سوالم خیلی ابتدایی نباشه :دی (8 سال پیش)
 برای این سوال 2 پاسخ وجود دارد.
پاسخ به سوال 
Hossein Lamei Ramandi  8 سال پیش
+2 0

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

Picasso.with(context).load("http://i.imgur.com/DvpvklR.png").into(imageView);
پاسخ به سوال 
MarAnd  8 سال پیش
0 0

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

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