آموزش کتابخانه coil در کاتلین
سلام دوستان عزیز در این سری از آموزش های برنامه نویسی اندروید به آموزش کتابخانه coil در کاتلین می پردازیم از کتابخانه coil به منظور بارگذاری تصویر از url استفاده می شود (خواندن تصویر از لینک) کتابخانه های مختلفی برای نمایش تصویر منشتر شده است در ادامه با ما همراه باشید تا بیشتر با کتابخانه coil آشنا شوید.
Coil اولین کتابخانه kotlin اندروید هست که منشتر شده است از ویژگی دوم این کتابخانه می توان به کم حجم بودن کتابخانه (40 کیلوبایت) اشاره کرد که رقیب سرسخت کتاب خانه هایی مثل Picasso , Glide و حتی Fresco است. استفاده از کتابخانه coil بسیار ساده است و جزو کتابخانه های مدرن محصوب می شود. coil با androidx و کتابخانه هایی نظیر OkHttp توسعه داده شده است.
Requirements
- AndroidX
- Min SDK 14+
- Compile SDK: 29+
- Java 8+
خب برویم سراغ کد و کتابخانه 🙂
نکته قابل توجه اینکه این کتابخانه بروی مخزن mavenCentral منشتر شده است پس وارد Build.gradle شده و زیر Jcenter خط زیر را اضافه کنید.
1 | mavenCentral() |
بعد از اینکار وارد فایل دوم Gradle خود شده (Module) و خط زیر را به dependencies اضافه کنید.
1 | implementation("io.coil-kt:coil:0.11.0") |
پروژه را sync کنید خب از این مرحله که رد بشید 50 درصد کار رو انجام دادید.
کد ساده استفاده از این کتابخانه همانند زیر است.
1 2 3 4 5 6 | // URL imageView.load("https://www.example.com/image.jpg") // Resource imageView.load(R.drawable.image) // File imageView.load(File("/path/to/image.jpg")) |
و به این نکته باید اشاره کرد که این کتابخانه فقط برای لود کردن عکس از اینترنت نیست بلکه عکس های داخلی را نیز می تواند لود کند.
امکان سفارشی سازی بیشتر نیز همانند زیر وجود دارد.
1 2 3 4 5 | imageView.load("https://www.example.com/image.jpg") { crossfade(true) placeholder(R.drawable.image) transformations(CircleCropTransformation()) } |
placeholder برای زمانی است که عکس لود نشده است و دو ویژگی دیگر برای نمایش و جلوه بهتر عکس مورد استفاده قرار میگیرد.
کدهای بالا اتوماتیک singleton مربوط به ImageLoader
کتابخانه coil را فراخوانی می کند اگر بخواهید این ImageLoader
را خودتان صدا بزنید می توانید مثل زیر نیز عمل کنید (برای optimize کردن کاربرد دارد)
1 2 3 4 5 6 7 8 | val imageLoader = Coil.imageLoader(context) val request = LoadRequest.Builder(context) .data("https://www.example.com/image.jpg") .target { drawable -> // Handle the result. } .build() imageLoader.execute(request) |
اگر خواستید عکس را به صورت drawable دریافت کنید مثل زیر عمل کنید.
1 2 3 4 | val request = GetRequest.Builder(context) .data("https://www.example.com/image.jpg") .build() val drawable = imageLoader.execute(request).drawable |
موفق و پیروز باشید.