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

نمایش تصاویر در صورت آفلاین بودن

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

سلام خدمت دوستان

میخاستم با استفاده از کتابخانه volley یا picasso عکس ها رو از اینترنت دانلود کنم و نشون بدم و توی کش گوشی ذخیره کنم و دفعات بعد اگه این عکس در کش نبود بره از سرور دوباره دانلود کنه .

اگه امکانش هست کدش رو برام قرار بدین یا راهنمایی کنین.

نظرات

پیکاسو خودش این کار رو میکنه. هر لینک عکسی رو یک بار دان میکنه. میتونی امتحانش کنی. یه عکس اپلود کن رو هاستت و با پیکاسو لودش کن. بعد اون عکس رو پاک کن . میبینی که دوباره اونو نشون میده. فقط در صورتی که برنامه clear cache بشه دوباره لود میکنه
mahdiFar77 10 سال پیش
بله این درسته.ولی وقتی ومپ رو قطع میکنم دیگه عکس رو نشون نمیده. و وقتی دوباره ومپ رو فعال میکنم دوباره عکس رو نشون میده.چرا؟
آره خودمم جدیدا این مشکل رو پیدا کردم. وقتی نت قطع باشه عکس کش شده ولی نشونش نمیده.
mahdiFar77 10 سال پیش
راهکاری ندارین براش؟
احمد 10 سال پیش
اساس کار اینه اگه نت پیدا نشه از کش استفاده میشه اما اگه به هر دلیلی url مشکل داشته باشه و به فایل درستی اشاره نکنه عکسی که برای حالت های error یا faild انتخاب کردین نمایش داده میشه و کاری به کش نداره
خواست خدایی 10 سال پیش
رفقا یعنی کارکردن با picaso بهتر از volly هست؟
خواست خدایی 10 سال پیش
برا ارسال بقیه دیتاهایی که میره سمت سرور از چه کتابخونه ای استفاده می کنین؟
پیکاسو فقط مربوط به لود کردنه عکسه و کارش با volley متفاوته. در ضمن volley دیگ برای ارتباط با سرور خوب نیست. بهتره از retrofit یا okhttp استفاده کنید

پاسخ‌ها 1

احمد 10 سال پیش

برای پاک کردن کش:

در کلاس G:

 @Override
	public void onCreate() {
		super.onCreate();
deleteDirectoryTree(context.getCacheDir()); }


public static void deleteDirectoryTree(File fileOrDirectory) { if (fileOrDirectory.isDirectory()) { for (File child : fileOrDirectory.listFiles()) { deleteDirectoryTree(child); } } fileOrDirectory.delete(); }

برای لود هم (کش به صورت پیش فرض فعاله)

 				String fileUrl = G.SERVER_FTP + filename;
				URL url;
				Uri imageurl = null;
				Log.i(G.APP_LOG, "myUrlStr: " + fileUrl);
				try {
					url = new URL(fileUrl.toString());
					imageurl = Uri.parse(url.toString());
					imgkala_listkala.setBackground(null);
				} catch (MalformedURLException e1) {
					Log.i(G.APP_LOG, "MalformedURLException:");
				}

				Picasso.with(mContext)
						.load(imageurl)
						.placeholder(R.drawable.ic_not_available)
						.error(R.drawable.ic_not_available)
						.into(imgkala_listkala);

 

 

نظرات

mahdiFar77 10 سال پیش
ممنون و چطور میتونم عکس رو تو کش ذخیره کنم؟
احمد 10 سال پیش
خودش انجام میده
mahdiFar77 10 سال پیش
بله این درسته.ولی وقتی ومپ رو قطع میکنم دیگه عکس رو نشون نمیده. و وقتی دوباره ومپ رو فعال میکنم دوباره عکس رو نشون میده.چرا؟
احمد 10 سال پیش
فکر کنم در صورت نبود نت از کش می خونه فقط نه پیدا نکردن عکس در نت
mahdiFar77 10 سال پیش
تنظیمات دیگه نداره؟ وقتی نت رو قطع میکنم و دوباره اجرا میکنم برنامه رو عکس رو لود نمیکنه
احمد 10 سال پیش
اساس کار اینه اگه نت پیدا نشه از کش استفاده میشه اما اگه به هر دلیلی url مشکل داشته باشه و به فایل درستی اشاره نکنه عکسی که برای حالت های error یا faild انتخاب کردین نمایش داده میشه و کاری به کش نداره
mahdiFar77 10 سال پیش
لینک .placeholder(R.drawable.user) لینک .error(R.drawable.user) این دوتا خط رو که کامنت کردم درست شد.

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