Android/Study

[이미지 처리] Glide 라이브러리

화요밍 2022. 5. 18. 15:22
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)
  1. load(): 매개변수에 담긴 리소스, 이미지 URL, 사진 파일 경로를 전달합니다.
  2. 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