본문 바로가기

Android/꼭 공부해야 할 라이브러리

Glide 를 사용해서 이미지 설정하기

안녕하세요? 닉네임간편입니다. 이번 시간에는 Glide(글라이드)에 대해서 다루어보겠습니다.

1. 개요

Glide(글라이드)는 안드로이드에서 이미지를 빠르고 효율적으로 불러올 수 있게 도와주는 라이브러리입니다. 구글은 Glide 라이브러리르 사용하여 앱에서 비트맵을 가져오고, 디코딩하고 표시하는 것을 추천하고 있습니다. 따라서 이 라이브러리를 사용하는 것은 중요하다고 할 수 있습니다.

2. 사용법 - 준비

먼저 build.gradle 파일의 dependencies에 아래와 같은 요소를 추가합니다.

def glide_version = "4.12.0"
implementation 'com.github.bumptech.glide:glide:$glide_version'
annotationProcessor 'com.github.bumptech.glide:compiler:$glide_version'

이때 버전 정보가 다를 수 있으므로 아래 문서에서 최신 버전을 찾아 설정해줍니다.

https://github.com/bumptech/glide

 

GitHub - bumptech/glide: An image loading and caching library for Android focused on smooth scrolling

An image loading and caching library for Android focused on smooth scrolling - GitHub - bumptech/glide: An image loading and caching library for Android focused on smooth scrolling

github.com

외부 통신을 통해 이미지를 가져온다면 인터넷 권한을 매니페스트 파일에 추가합니다.

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>

이때 두번째에 있는 권한(ACCESS_NETWORK_STATE)은 사실 필수적이진 않지만, 네트워크가 불안정하거나 사용자가 에어플레인 모드를 사용할 때 Glide가 이를 대처할 수 있도록 도와줍니다.

3. 사용법 - 코드

아래와 같이 사용할 수 있습니다. 보기 편하기 위해 줄바꿈을 했습니다.

Glide.with(this)
      .load(url)
      .fitCenter()
      .placeholder(R.drawable.placeholder)
      .into(poster)

현재 여기서 글라이드를 사용하는 데 필수적인 요소는 with, load 그리고 into 입니다. 이외에 더 필요한 속성을 추가하면 됩니다.

a. with()

View, Fragment 또는 Activity로부터 Context를 가져옵니다.

b. load()

이미지를 로드하는데, Bitmap, Drawable, Uri 등 다양한 방식으로 이미지를 로드할 수 있습니다. 저는 Uri를 사용했습니다.

c. into()

이미지를 보여줄 View를 지정합니다.

d. fitCenter()

실제 이미지가 이미지가 표현되는 뷰의 사이즈와 다를 때, 원본 이미지의 가로/세로 비율을 유지하면서 빈 공간은 background 속성의 color로 채우는 것입니다. 이때 이 이미지는 레이아웃의 가운데 쪽에 정렬됩니다.

e. Placeholder

이미지를 불러오는 과정에서 사용하는 Drawable입니다.

다른 상용 서비스를 보면 특정 이미지가 표시되기 전에 똑같은 이미지가 먼저 그려져있는 걸 볼 수 있습니다. 이미지가 불러오지 않더라도 화면에 아무것도 표시되는 것은 사용자에게 좋게 보이지 않을 수 있기 때문입니다. 따라서 이를 방지하기 위해 먼저 placeholder를 사용해 기본 이미지를 설정한 후, 추후에 원하는 이미지가 로드가 다 되면 그때 placeholder로 설정했던 이미지와 해당 이미지를 교체합니다.

또한 이외에도 다양한 메서드를 호출해서 기능을 구현할 수 있습니다.

자세한 사항은 아래 문서를 통해 확인하실 수 있습니다.

https://bumptech.github.io/glide/

 

Glide v4 : Fast and efficient image loading for Android

About Glide Glide is a fast and efficient image loading library for Android focused on smooth scrolling. Glide offers an easy to use API, a performant and extensible resource decoding pipeline and automatic resource pooling. Glide supports fetching, decodi

bumptech.github.io

4. 마무리

이번 시간에는 글라이드에 대해서 알아봤습니다. 이미지를 표시할 때 매우 유용하고, 특히 구글이 권장하는 것이기 때문에 이 라이브러리는 참 중요하다고 할 수 있습니다. 따라서 이번 시간에 잘 정리되었으면 좋겠습니다.

728x90
반응형