View Full Version : ذخیره دائمی تصاویر دریافتی با Universal Image Loader
haniiii
یک شنبه 28 دی 1393, 12:11 عصر
سلام
برای ذخیره تصاویر به صورت دائمی چه تنظیماتی رو باید استفاده کنم ؟ ... برنامه هایی مثل clean master تصاویری که ذخیره شدند رو پاک میکنند. راه حل چیه ؟
c0mmander
یک شنبه 28 دی 1393, 12:49 عصر
عکس رو در میسیری غیر از مسیر نصب شده برنامه ذخیره کن مثلا در حافظه رم یا حافظه گوشی درون فولدر
storm_saeed
یک شنبه 28 دی 1393, 13:15 عصر
مسیر پیش فرض UIL تویه /Android/data/myApp هست اگه این رو به /data/data/myApp تغییر بدی clean master دسترسی به این پوشه رو نداره مگر اینکه روت باشه
برای این کار این رو به DisplayImageOptions اضافه کن
cacheOnDisk(true)
این جا خودش توضیح داده
https://github.com/nostra13/Android-Universal-Image-Loader/wiki/Useful-Info
haniiii
یک شنبه 28 دی 1393, 13:21 عصر
مسیر پیش فرض UIL تویه /Android/data/myApp هست اگه این رو به /data/data/myApp تغییر بدی clean master دسترسی به این پوشه رو نداره مگر اینکه روت باشه
برای این کار این رو به DisplayImageOptions اضافه کن
cacheOnDisk(true)
این جا خودش توضیح داده
https://github.com/nostra13/Android-Universal-Image-Loader/wiki/Useful-Info
این کار رو از قبل انجام میدادم
تنظیمات من :
DisplayImageOptions defaultOptions = new DisplayImageOptions.Builder()
.cacheInMemory(true)
.cacheOnDisk(true)
.showImageOnLoading(R.drawable.loading) // resource or drawable
.showImageForEmptyUri(R.drawable.empty) // resource or drawable
.showImageOnFail(R.drawable.fail) // resource or drawable
.imageScaleType(ImageScaleType.EXACTLY)
.build();
ImageLoaderConfiguration config = new ImageLoaderConfiguration.Builder(getApplicationCon text())
.memoryCache(new WeakMemoryCache())
.defaultDisplayImageOptions(defaultOptions)
.threadPoolSize(4)
.denyCacheImageMultipleSizesInMemory()
.threadPriority(Thread.MAX_PRIORITY-1)
.build();
haniiii
یک شنبه 28 دی 1393, 13:27 عصر
عکس رو در میسیری غیر از مسیر نصب شده برنامه ذخیره کن مثلا در حافظه رم یا حافظه گوشی درون فولدر
تو UIL این امکان هست که به صورت دستی بهش مسیر بدم ؟
storm_saeed
یک شنبه 28 دی 1393, 13:44 عصر
این کار رو از قبل انجام میدادم
تنظیمات من :
DisplayImageOptions defaultOptions = new DisplayImageOptions.Builder()
.cacheInMemory(true)
.cacheOnDisk(true)
.showImageOnLoading(R.drawable.loading) // resource or drawable
.showImageForEmptyUri(R.drawable.empty) // resource or drawable
.showImageOnFail(R.drawable.fail) // resource or drawable
.imageScaleType(ImageScaleType.EXACTLY)
.build();
ImageLoaderConfiguration config = new ImageLoaderConfiguration.Builder(getApplicationCon text())
.memoryCache(new WeakMemoryCache())
.defaultDisplayImageOptions(defaultOptions)
.threadPoolSize(4)
.denyCacheImageMultipleSizesInMemory()
.threadPriority(Thread.MAX_PRIORITY-1)
.build();
خب الان clean master پاکش میکنه مگه ؟
storm_saeed
یک شنبه 28 دی 1393, 13:47 عصر
تو UIL این امکان هست که به صورت دستی بهش مسیر بدم ؟
File cacheDir = StorageUtils.getOwnCacheDirectory(getApplicationCo ntext(), "/cache");
()ImageLoaderConfiguration config = new ImageLoaderConfiguration.Builder(getApplicationCon text()) .discCache(new UnlimitedDiscCache(cacheDir)).
...
.build();
haniiii
یک شنبه 28 دی 1393, 14:27 عصر
خب الان clean master پاکش میکنه مگه ؟
بله متاسفانه !
فکر میکنم اگر آدرس دستی بدم بازم پاک میکنه
haniiii
یک شنبه 28 دی 1393, 22:07 عصر
کسی راه حل دیگه ای سراغ نداره ؟
storm_saeed
یک شنبه 28 دی 1393, 23:29 عصر
تا اونجا که میدونم برنامه هایی مثل clean master میاد فولدر cache برنامه ها رو پاک میکنه چون بدون روت میشه اینکارو کرد پس اگه فولدر Image loader تون رو مثلا به /data/data/myApp/files تغییر بدین این مشکل رفع بشه
haniiii
یک شنبه 05 بهمن 1393, 22:38 عصر
up ... راه حل دیگه ای ؟
c0mmander
دوشنبه 06 بهمن 1393, 09:27 صبح
من یا درست متوجه سوال شما نشدم یا اینکه گوشی من یه مشکلی داره و کلین مستر نمیتونه عکس هایی که بدون پسوند هستند و یا در /storage/ sdcard ذخیره شدن رو پاک کنه!
haniiii
دوشنبه 06 بهمن 1393, 14:47 عصر
من یا درست متوجه سوال شما نشدم یا اینکه گوشی من یه مشکلی داره و کلین مستر نمیتونه عکس هایی که بدون پسوند هستند و یا در /storage/ sdcard ذخیره شدن رو پاک کنه!
اسم های مختلفی رو امتحان کردم ... پوشه های مختلف ... مسیر های مختلف ... همشون رو میشناسه و پاک میکنه ... فکر میکنم به دلیل ماهیت فایل های کش uil باشه
به جز مسیر data/data که فقط در حالت روت میشه دسترسی داشت ... با uil چطور میتونم تو این مسیر ذخیره کنم ؟
c0mmander
دوشنبه 06 بهمن 1393, 18:10 عصر
اسم های مختلفی رو امتحان کردم ... پوشه های مختلف ... مسیر های مختلف ... همشون رو میشناسه و پاک میکنه ... فکر میکنم به دلیل ماهیت فایل های کش uil باشه
به جز مسیر data/data که فقط در حالت روت میشه دسترسی داشت ... با uil چطور میتونم تو این مسیر ذخیره کنم ؟
به اسم نیست! به فولدره! وقتی فولدر کش برنامه شما حاوی دیتایی باشه همون جور که دوستمون هم گفت پاک میکنه! اما وقتی ذخیره عکس در data/data (در حالتی که گوشی روت شده نباشد) و یا کارت حافظه منتقل کنید دیگه مشکل حذف محتوا رو نخواهید داشت. حد اقل برای من که این طوریه!
اما برای Universal Image Loader یا همون UIL چرا نشه عوض کرد مسیرش رو؟ دوستمون اون بالا ها گفتن :
DisplayImageOptions defaultOptions = new DisplayImageOptions.Builder()
.cacheInMemory(true)
.cacheOnDisk(true)
.build();
ImageLoaderConfiguration config =new ImageLoaderConfiguration.Builder(getApplicationCon text()) .discCache(new UnlimitedDiscCache(cacheDir))
.defaultDisplayImageOptions(defaultOptions)
.build();
haniiii
یک شنبه 19 بهمن 1393, 23:31 عصر
چطوری میتونم ۲ تا ImageLoaderConfiguration داشته باشم ؟
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.