일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- 알고리즘
- HTTP
- 알림
- BOJ
- room
- CollapsingToolbarLayout
- onLayout
- AppBarLayout
- kotlin
- 백준
- CoordinatorLayout
- onMeasure
- Coroutine
- Algorithm
- 코틀린
- lifecycle
- hilt
- Navigation
- activity
- Android
- Behavior
- View
- sqlite
- LiveData
- recyclerview
- ViewModel
- 안드로이드
- DataBinding
- CustomView
- notification
- Today
- Total
개발일지
Android in A..Z - Glide 본문
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)
공식문서
이 외에도 다양한 기능이 공식문서에 등록되어있다.
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 |