728x90
반응형
Glide 라이브러리란?
Bump라는 앱에서 내부적으로 이용하다가 구글이 인수해서 공개한 라이브러리입니다.
모든 종류의 이미지를 가능한 한 빠르게 가져와서 이용할 수 있도록 합니다.
이미지의 크기 조정, 로딩 이미지, 오류 이미지 표시 등을 쉽게 구현도록 지원합니다.
서버에서 이미지를 내려받을 때 Volley나 Retrofit보다 더 빠르게 처리합니다.
- 라이브러리 등록
dependencies {
...
implementation 'com.github.bumptech.glide:glide:4.12.0'
}
- 이미지를 가져와서 출력하기
//리소스 이미지 출력
Glide.with(this)
.load(R.drawable.seoul)
.into(binding.resultView)
//서버 이미지 출력
Glide.with(this)
.load(url)
.into(binding.resultView)
- load(): 매개변수에 담긴 리소스, 이미지 URL, 사진 파일 경로를 전달합니다.
- into(): 로드한 이미지를 출력할 이미지 뷰 객체를 설정합니다.
- 이미지 크기 조절하기
파일 이미지나 서버에 있는 이미지는 크기가 커서 OOM(Out Of Memory) 문제가 발생할 수 있습니다.
Glide를 이용하면 이미지 뷰의 크기에 맞게 자동으로 줄여서 이미지가 출력되어 OOM 문제를 신경 쓰지 않아도 된다는 장점이 있습니다.
또한, override() 함수를 통해 특정 크기로 이미지를 줄일 수 있습니다.
Glide.with(this)
.load(R.drawable.seoul)
.override(200, 200)
.into(binding.resultView)
- 로딩/오류 이미지 출력하기
파일이나 서버에 있는 이미지를 이용할 때는 이미지를 불러오는 데 시간이 오래 걸릴 수 있습니다.
Glide의 placeholder() 함수를 통해 로딩 상태를 표현하는 이미지를 출력하고, 완료되면 load() 함수에 지정한 이미지를 출력할 수 있습니다.
또한, error() 함수를 통해 서버 접속이 원활하지 않을 때 출력할 이미지를 지정할 수 있습니다.
Glide.with(this)
.load(url)
.override(200, 200)
.placeholder(R.drwable.loading)
.error(R.drawable.error)
.into(binding.resultView)
참고
- 참고 도서: Do it! 깡샘의 안드로이드 앱 프로그래밍 with 코틀린 - 강성윤 지음
728x90
반응형
'Android > Study' 카테고리의 다른 글
[View binding] (0) | 2022.08.12 |
---|---|
[HTTP 통신] REST(Representational State Transfer) (0) | 2022.05.18 |
[HTTP 통신] Volley와 Retrofit2 라이브러리 (0) | 2022.05.17 |