개발일지

Android in A..Z - Glide 본문

Android (안드로이드)

Android in A..Z - Glide

강태종 2020. 11. 7. 20:18

Glide

Android에서 Image를 빠르게 불러오기 위한 라이브러리다. 기본적으로 이미지, GIF를 불러올 수 있고, 에러처리, 디스크 캐쉬등 다양한 기능을 제공한다.

Glide의 원칙은 어떠한 이미지도 빠르고 부드럽게 불러오는 것을 목표로 한다.


Dependency

ext {
    glide_version = "4.12.0"
}

dependencies {
	// Glide
    implementation "com.github.bumptech.glide:glide:$glide_version"
    annotationProcessor "com.github.bumptech.glide:compiler:$glide_version"
}

github.com/bumptech/glidebumptech.github.io/glide/doc/download-setup.html

 

Glide v4 : Download & Setup

Android SDK Requirements Minimum SDK Version - Glide requires a minimum SDK version of 14 (Ice Cream Sandwich) or higher. Compile SDK Version - Glide must be compiled against SDK version 27 (Oreo MR1) or higher. Support Library Version - Glide uses support

bumptech.github.io


사용법

with : view, context, fragment, activity 등이 들어갈 수 있다.

load : imageURL, uri, file, bitmap, resourceId, byteArray, drawble 등이 들어갈 수 있다.

into : imageView가 들어간다.

        Glide.with(view)
            .load(uri)
            .into(imageView)

이미지 에러 처리

error : resourceId나 drawable이 들어간다.

Glide.with(this)
            .load("") // imageURL을 이상하게 줘서 에러 발생
            .error(R.drawable.ic_android_black_24dp)
            .into(imageView)

이미지 크기 처리

로딩속도를 빠르게 하고 메모리를 절약할 수 있다.

override : width, heigt값을 넘겨준다.

        Glide.with(this)
            .load(uri)
            .override(500, 500)
            //.override(Target.SIZE_ORIGINAL, Target.SIZE_ORIGINAL)
            .into(imageView)

로딩중 대체 이미지

plachholder : resourceId, drawable을 줄 수 있다.

        Glide.with(this)
            .load(uri)
            .placeholder(R.drawable.ic_android_black_24dp)
            .into(imageView)

GIF처리

asGif()

        Glide.with(this)
            .asGif()
            .load(uri)
            .into(imageView)

메모리 캐쉬

skipMemoryCache : 메모리 캐쉬를 설정할 수 있다. (기본값 : true)

        Glide.with(this)
            .load(uri)
            .skipMemoryCache(true)
            .into(imageView)

디스크 캐쉬

diskCacheStrategy : 디스크에 캐쉬를 어떻게 할 지 정한다. (기본값 : ALL)

  • DiskCacheStrategy.NONE : 디스크 캐싱을 하지 않는다.
  • DiskCacheStrategy.SOURCE : 원본 이미지만 캐싱
  • DiskCacheStrategy.RESULT : 변형된 이미지만 캐싱
  • DiskCacheStrategy.ALL : 모든 이미지를 캐싱
        Glide.with(this)
            .load(uri)
            .diskCacheStrategy(DiskCacheStrategy.NONE)
            .into(imageView)

URL에 Header 추가하기

        Glide.with(view).load(
            GlideUrl(uri) {
                mapOf(
                    "User-Agent" to "Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.93 Mobile Safari/537.36"
                )
            }
        ).into(view)

공식문서

이 외에도 다양한 기능이 공식문서에 등록되어있다.

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


Git (예제코드)

github.com/KangTaeJong98/Example/tree/main/Android/Glide

 

KangTaeJong98/Example

My Example Code. Contribute to KangTaeJong98/Example development by creating an account on GitHub.

github.com

 

'Android (안드로이드)' 카테고리의 다른 글

Android in A..Z - Fragment.setRetainInstance  (0) 2021.02.01
Android in A..Z - TextInputLayout  (0) 2021.01.20
Android in A..Z - Widget  (0) 2020.08.09
Android in A..Z - Handler  (0) 2020.07.28
Android in A..Z - Activity Lifecycle  (0) 2020.07.28
Comments