امروزه اکثر برنامه های کاربردی به طرق مختلف وابسته به اینترنت می باشد. و داده های تصویری نیز از ارزش زیادی برخوردار هستند. در اکثر مواقع برای برنامه نویسی برنامه های آنلاین نیازمند بارگزاری تصاویر در برنامه می شویم. بارگزاری تصاویر در اندروید با کد های خود اس دی کا کاری طاقت فرسا می باشد و مدیریت حالت های مختلف و یا پیاده سازی سیستم کشینگ پروسه ای زمان بر است. کتابخانه های مختلفی توسط توسعه دهندگان مختلف برای این کار ارائه شده است. picasso جزو قدیمی ترین و بهترین کتابخانه ها در زمینه بار گزاری تصاویر می باشد.
چرا استفاده از picasso?
- راحتی کار برای بارگزاری تصاویر در این کتابخانه نسبت به کد های اصلی اندروید
- سیستم کشینگ اتوماتیک در این کتابخانه
- کنترل حافظه در عملکردهای مختلف در روی تصاویر بعد از بارگزاری نیز سخت می باشد که picasso این حالت را نیز مدیریت می کند.
دستور زیر را به فایل build.gradle پروژه خود اضافه کنید و اجازه دهید اندروید استودیو کتابخانه را دانلود نماید.
compile 'com.squareup.picasso:picasso:2.5.2'
نحوه استفاده
ساده ترین روش استفاده از این کتابخانه به شکل زیر می باشد که فقط عملیات بارگزاری را انجام می دهد.
Picasso.with(context).load("http://i.imgur.com/DvpvklR.png").into(imageView);
نکته : استفاده به این صورت حتی در داخل آیتم های adapter های لیست ویو و یا ریسایکلر ویو توسط سیستم کشینگ بصورت اتوماتیک کنترل می شود.
استفاده با در نظر گرفتن حالت عدم دسترسی به عکس دانلودی و یا سرعت پایین اینترنت
در بعضی برنامه های اندروید برای لود آیتم های لیست هایشان قبل از لود تصویر لوگوی خود شرکت یا برنامه نمایش داده می شود به این حالت استفاده از placeholder می گویند.
حالت بعدی حالت عدم دسترسی به تصاویر برای بارگزاری می باشد که در این حالت برنامه باید ارور بدهد که قبلا ذکر کردیم این کتابخانه حالت های مختلف را خودش به شکل هوشمند مدیریت می کند.(error)
Picasso.with(this)
.load("YOUR IMAGE URL HERE")
.placeholder(R.drawable.ic_placeholder) // optional
.error(R.drawable.ic_error_fallback) // optional
.into(imageView);
روش استفاده با استفاده از تغییرات در روی عکس
در برخی مواقع نیازمند آن هستیم که عکس هایی با سایز های بسیار بزرگ را از سمت سرور بارگزاری نماییم ولی استفاده تعداد زیادی از عکس ها با حجم بسیار زیاد ممکن است باعث کمبود رم در گوشی کاربر شود و برنامه بسته شود در این حالت از توابع transformations یا تغییرات استفاده می کنیم.
Picasso.with(this)
.load("YOUR IMAGE URL HERE")
.placeholder(R.drawable.ic_placeholder) // optional
.error(R.drawable.ic_error_fallback) // optional
.resize(250, 200) // optional // تغییر سایز
.rotate(90) // optional // تغییر زاویه عکس
.into(imageView);
توجه : استفاده از دسترسی اینترنت را در برنامه خود فراموش نکنید.