기본 사용법
Glide와 Picasso 모두 안드로이드 이미지 로딩에 사용되는 라이브러리입니다.
Glide 라이브러리와 Picasso라이브러리의 기본적인 구성은 같습니다.
👉 Glide.with(context).load("이미지 링크").into(imageView)
Picasso.with(context).load("이미지 링크").into(imageView)
하지만 Picasso는 with()함수에서 Context만을 지원하고,
Glide는 Context뿐만 아니라 다른 객체들도 사용할 수 있습니다.
예를 들어 Fragment같은 경우에, Glide에서는 with()함수에 getActivity()를 해줄필요 없이 this로 바로 넣어주어도 사용 가능합니다.
차이점
- 이미지 Bitmap 포맷 방식의 차이
- Glide와 Picasso는 Bitmap 포맷이 다르다
- Picasso는 ARGB_8888, Glide는 RGB_565를 사용한다.
- RGB는 ARGB에 비해 화질이 다소 떨어지지만 메모리 용량을 적게 사용한다.(50%)
👉 RGB_565 : 2byte로 1pixel을 표현하는 방식.
16bit (2byte)를 쪼개서 R(5bit), G(6bit), B(5bit)로 표현하는 방식.
R,B는 2^5 = 32로 32가지의 구분 정밀도를,
G는 2^6 = 64로 64가자의 구분 정밀도를 갖는다.
(32*64*32 = 65,536 색 표현 가능)
👉 한 pixel을 4byte를 이용해서 우수한 색 표현을 하게 된다.
각 색별로 1byte씩 사용하고 있어서 개발시에도 다루기 편하다.
(256*256*256=16,777,216 색 표현가능)
- 이미지 캐싱 방식
- 1920x1080의 이미지를 864x 432 크기의 ImageView에 로드를 시킨다고 생각하자.
- Picasso : 1920x1080 원본 이미지를 캐시한다.
- Glide : 864x 432크기의 이미지를 캐시한다.
- 만약에 위의 경우를 거친 후 420x 210크기에 새로 로드를 한다고 생각하자.
- Picasso : 원본 이미지를 가지고 있으므로 다시 캐시하지 않음.
- Glide : 420x 210크기의 이미지를 캐시한다.
- Glide만이 가지고 있는 메서드
- GIF
Glide에서는 ImageView에 GIF파일을 로드할 수 있습니다.하지만 GIF는 많은 메모리 사용량을 보이기때문에 적절하게 GIF를 사용해야 합니다.
- Thumbnail기능
<용량이 큰 이미지의 경우 thumbnail()함수를 이용하여 우선 10%만큼만 가져와서 흐릿하게나마 먼저 보여주고 그다음 전체 이미지를 로드해서 사용자에게 좀더 쾌적한 UI를 제공해줄 수 있습니다.
- Custom Animation
Picasso에서는 단순히 fade in 기능의 애니메이션만을 지원하는 반면, Glide에서는 .animate(ViewPropertyAnimation.Animator)을 이용하여 여러 애니메이션을 보여줄수 있습니다.
- Custom load
기본적으로 Image Resource, URL, 휴대폰 내장 이미지를 로드하는 기능 외에도 Custom Model을 만들어서 이를 로드하는 기능도 지원하고 있습니다.
글라이드도 원본 캐시하는걸로 바뀌었을 건데 출처가 궁금합니다