[Android]Glide -이미지 로딩/캐싱 라이브러리(Image loading/caching library)
현재 Android에서 가장 많이 사용 되는 이미지 라이브러리 중에 하나인 'Glide'에 대해서 알아 보겠씁니다.
Android에서 리소스에 이미지를 불러 오거나 디바이스 내 파일 혹은 URL을 통해 이미지를 가져와 표시 하는 경우가 많은데 이럴때 사용되는 라이브러리가 바로 'Glide'입니다.
'Glide'은 2014년 공개된 라이브러리로 몇줄에 코드로 memory,캐시,디코딩등에 복잡한 작업들을 가능 하게 해주는 멋진 라이브러리 입니다.
https://github.com/bumptech/glide
Gradle 기준으로
1 2 3 4 5 6 7 8 9 | repositories { mavenCentral() google() } dependencies { implementation 'com.github.bumptech.glide:glide:4.8.0' annotationProcessor 'com.github.bumptech.glide:compiler:4.8.0' } | cs |
MyAppGlideModule.java
1 2 3 4 5 | import com.bumptech.glide.annotation.GlideModule; import com.bumptech.glide.module.AppGlideModule; @GlideModule public final class MyAppGlideModule extends AppGlideModule {} | cs |
사용법
1 2 3 4 5 6 7 | ImageView imgPic; imgPic = findViewById(R.id.image01); GlideApp.with(this) .load("이미지 URL") .into(imgPic); | cs |
사용법은 간단 합니다. URL에서 가져온다고 가정 했을 때 이미지 URL 및 이미지가 표시될 ImageView에 값만 넣어 주면 됩니다.
'Glide'은 다양한 옵션(썸네일,디폴트 이미지, 리사이즈등)을 샘플 코드로 제공 해주는데, 좀더 자세한 사용법은 아래 가이드 문서를 참고 하시길 바랍니다.
https://bumptech.github.io/glide/
※GlideApp을 찾지 못 할때 (not found) 해결 방법
MyAppGlideModule.java를 만들게 되면 기본적으로 'GlideApp'을 통해 사용이 가능 하지만 간혹 가다 not found 에러가 발생 될 수 있습니다.
이럴 경우 안드로이드 스튜디오에서 Build -> Clean project (다음에) Rebuild Project를 하면 사용 할수 있습니다.
※Glide,Picasso,Universal Image Loader(UIL)에 대한 개인적인 생각
안드로이드에서 사용되는 여러 이미지 로딩 라이브러리 중에서 Glide,Picasso,Universal Image Loader(UIL)를 모두 사용해 프로젝트를 개발한 경험 후 느낀 점은 Universal Image Loader(UIL)은 Glide,Picasso이전에 사용 했던 가장 강력한 라이브러리로 사용법이 쉽고 쉽게 커스텀해 사용 할 수 있었고 타 라이브러리보다 압도적으로 많은 관련 자료를 찾아 볼 수 있는 장점이 있었습니다.
하지만 현재는 사용 하지 않는 라이브러리 입니다.
Glide,Picasso는 둘다 사용법이 간단하고 비슷한 부분이 많아 쉽게 사용 될 수 있습니다. Glide이 Picasso에 비해서 무겁고,느립니다.
옵션이나 기능면에서 Glide이 Picasso보다 뛰어 납니다.
개인적으로 간단한 프로젝트에서는 Picasso를 사용 하고 있으며,gif든가 썸네일 등 Glide에서만 제공 되는 기능을 사용 하는 경우에는 Glide을 사용 하고 있습니다.