ورود

View Full Version : کمک برای استفاده از Universal Image Downloader



hamedg1366
شنبه 25 بهمن 1393, 17:56 عصر
با سلام خدمت همه دوستان گل انجمن

توسط کدهای زیر ، عکس رو با کتابخونه Universal Image Downloader دانلود میکنم فقط نمیدونم بهینس؟ و اینکه کدها هر کدوم چیکاری انجام میدن ؛

لطفا دوستان با تجربه و استادات عزیز راهنمائی کنن.


ImageView thumb_image = (ImageView) findViewById(R.id.imgV1);
url="http://site.com/pic.jpg";

DisplayImageOptions defaultOptions = new DisplayImageOptions.Builder()
.cacheOnDisc(true).cacheInMemory(true)
.imageScaleType(ImageScaleType.EXACTLY)
.displayer(new FadeInBitmapDisplayer(300)).build();

ImageLoaderConfiguration config = new ImageLoaderConfiguration.Builder(
getApplicationContext())
.defaultDisplayImageOptions(defaultOptions)
.memoryCache(new WeakMemoryCache())
.discCacheSize(100 * 1024 * 1024).build();

ImageLoader.getInstance().init(config);


ImageLoader imageLoader = ImageLoader.getInstance();
DisplayImageOptions options = new DisplayImageOptions.Builder().cacheInMemory(true)
.showImageOnFail(R.drawable.ic_launcher)
.showStubImage(R.drawable.ic_launcher)
.showImageForEmptyUri(R.drawable.ic_launcher).cach eInMemory()
.cacheOnDisc().build();



بعنوان مثال منظور از 2 خط زیر چی هس؟

FadeInBitmapDisplayer(300)
و
discCacheSize(100 * 1024 * 1024)

و آیا با این روش تصاویر در حافظه کش میشوند ؟ کجا ؟

از اساتید کسی لطفا کامل این کتابخونه رو توضیح بده ، (خیلی سرچ کردم اما زبان'م خوب نیس کامل متوجه نشدم)


با سپس بی پایان

hamedg1366
شنبه 25 بهمن 1393, 22:26 عصر
لطفا از دوستان کمک کنن

hamedg1366
یک شنبه 26 بهمن 1393, 12:56 عصر
up...


(نوشته شما بسیار اندک است ، تعداد کاراکتر های هر نوشته دست کم 10 عدد میبایست باشد.)

hamedg1366
دوشنبه 27 بهمن 1393, 11:51 صبح
دوباره up
:افسرده:

tresa022
دوشنبه 27 بهمن 1393, 12:00 عصر
این آپشن های image loader هستن دیگه خب اون اندازه کش هست و اون یکی هم بعد از لود تصویر با حالت فید(محو شدن )نمایش میده و..

که از اسم توابع کاملا مشخصه چی میکنن

poorman
دوشنبه 27 بهمن 1393, 20:38 عصر
سلام دوست عزیز و گرامی

سوالتون رو توی پیام خصوصی پرسیدید اما گفتم اینجا توضیح بدم براتون
خب کدهایی که گذاشتین یکم تو در تو و دوباره کاری داره

شما در کل باید یک config یا تنظیمات برای imageLoader مشخص کنید
که میتونه تنظیمات استانداردش مثل کد زیر باشه

// set imageLoader Config for universal image library
ImageLoaderConfiguration config = new ImageLoaderConfiguration.Builder(context)
.threadPriority(Thread.NORM_PRIORITY - 2)
.denyCacheImageMultipleSizesInMemory()
.diskCacheFileNameGenerator(new Md5FileNameGenerator())
.diskCacheSize(50 * 1024 * 1024) // 50 Mb
.tasksProcessingOrder(QueueProcessingType.LIFO)
.build();
// Initialize ImageLoader with configuration.
ImageLoader.getInstance().init(config);

خط اول داریم تنظیمات رو میسازیم، خط دوم داریم اولویت میدیم به لود شدن عکس ها
خط سوم داریم میگیم عکس ها رو با سایزهای مختلف ذخیره نکنه
خط بعد نوع نام گذاری عکس ها در کش مشخص میشه که به صورت md5 هست
خط بعد اندازه حافظه کش برای ذخیره عکس ها
بعد نوع لود کردن و پردازش کردن عکس ها مشخص میشه که به صورت صف هست

و در آخر این تنظیمات رو به imageLoader اختصاص میدیم

این تنظیمات رو کافیه اولین بار که برنامه اجرا میشه انجام بدید
بعد وقتی میخواین یک عکس یا چند عکس رو نمایش بدید لازمه displayOption رو مشخص کنید که مربوط میشه به نمایش عکس ها

این قسمت هم میتونه به شکل زیر باشه


DisplayImageOptions imgLoaderOption = new DisplayImageOptions.Builder()
.showImageOnLoading(R.drawable.loading_food_photo)
.showImageForEmptyUri(R.drawable.ic_launcher)
.showImageOnFail(R.drawable.ic_launcher)
.cacheInMemory(true)
.cacheOnDisk(true)
.considerExifParams(true)
.bitmapConfig(Config.RGB_565)
.build();

خط اول که از تنظیمات یک نمونه جدید میسازیم
بعد میگیم وقتی عکس داره لود میشه چه تصویری نمایش داده بشه
بعد اگر عکسی وجود نداشت چی نمایش بده
بعد اگر خطا گرفت چی نمایش بده
خط های بعد میگیم توی مموری و دیسک کش بکنه
خط بعد تا جایی که فهمیدم مربوط به چرخش خودکار برخی عکس هاست که حالا بنابه دلایلی چرخیدن
بعد هم که تنظیمات bitmap هست که برای جلوگیری از کرش کردن برنامه توی عکس های بزرگ روی پایین ترین حالت قرار داده شده

بعد از این کارها به روش زیر میتونید عکس رو نمایش بدید

ImageLoader.getInstance()
.displayImage(url, imageView, imgLoaderOption, null);

البته باز هم استفاده بنده از این کتابخانه محدود به یک پروژه است و ممکنه اطلاعاتم ناقص باشه

hamedg1366
دوشنبه 27 بهمن 1393, 23:00 عصر
بالاترین تشکر های من بشما جناب poorman (http://barnamenevis.org/member.php?295320-poorman):قلب: