Coil
Coil은 Coroutine Image Loader의 약자이며, Kotlin Coroutines(코루틴)으로 만들어진 Android 백앤드 이미지 로딩 라이브러리입니다.
Coil에는 이렇게 다양한 장점들이 있습니다.
- Glide, Fresco보다 상대적으로 가볍습니다.
- 심플함과 최소한의 boilerplate를 위하여 Kotlin의 기능을 활용하기 때문에 사용하기 쉽습니다.
- Kotlin으로 개발되었으며 Coroutines, OkHttp, Okio, AndroidX Lifecycles 등의 최신 라이브러리를 사용합니다.
- 메모리와 디스크의 캐싱, 메모리의 이미지 다운 샘플링, Bitmap 재사용, 일시정지/취소의 자동화 등등 수많은 최적화 작업을 수행하므로 처리 속도가 굉장히 빠릅니다.
Coil 구현하기
1. Manifest에 권한 선언
Coil을 사용하기 위해서 인터넷에 대한 권한을 추가합니다.
<uses-permission android:name="android.permission.INTERNET" />
2. build.gradle에 의존성 추가
Coil을 사용하기 위해서 build.gradle에 Coil 라이브러리를 추가합니다.
implementation 'io.coil-kt:coil:2.2.2'
3. 뷰에 이미지 로드하기
Coil의 load() 메서드를 사용하여 ImageView에 이미지를 로딩합니다.
// URL
imageView.load("https://www.example.com/image.jpg")
// Resource
imageView.load(R.drawable.image)
// File
imageView.load(File("/path/image.jpg"))
Coil에서는 추가적인 이미지 핸들링을 위한 4가지의 Image Transformations을 제공합니다.
- BlurTransformation : 이미지를 흐릿하게 하는 가우시안 블러(Gaussian Blur)를 적용합니다.
- CircleCropTransformation : 이미지의 중심을 기준으로 원형으로 이미지를 자릅니다.
- GrayscaleTransformation : 그레이스케일로 음영처리를 적용합니다.
- RoundedCornersTransformation : 사이즈에 맞도록 이미지를 자르고 이미지 모서리를 둥글게 라운드를 적용합니다.
imageView.load("https://www.example.com/image.jpg") {
crossfade(true)
placeholder(R.drawable.image)
transformations(BlurTransformation(applicationContext, 1f, 1f))
transformations(CircleCropTransformation())
transformations(GrayscaleTransformation())
transformations(RoundedCornersTransformation(5f, 10f, 15f, 20f))
}
728x90
반응형
'안드로이드 > 활용' 카테고리의 다른 글
[Android] Paging3 사용하기 (0) | 2023.12.02 |
---|---|
[Android] Hilt를 통한 의존성 주입 (0) | 2023.11.21 |
[Android] CountDownTimer 사용하기 (0) | 2023.10.11 |
[Android] SMS Retriever API를 통해 SMS 자동으로 읽어오기 (0) | 2023.10.11 |
[Android] BindingAdapter 사용하기 (0) | 2023.10.09 |