
# 안드로이드 이미지 라이브러리
Glide는 Picasso와 함께 안드로이드 이미지 로딩 라이브러리에서 많이 사용되는 라이브러리입니다.
이미지, GIF, 캐싱, 커스텀 등 다양한 기능일 지원합니다.
Picasso.with(context).load("이미지 URL").into(imageView);
Glide.with(context).load("이미지 URL").into(imageView);
Picasso | Glide | |
기능 갯수 | 지원하는 기능이 Glide 보다 적다. | 지원하는 기능이 Picasso보다 많다. |
캐싱 방법 | 이미지의 사이즈 변환 없이 저장한다. | 이미지의 사이즈를 줄여 저장한다. |
메모리 사용량 | 원본 이미지 저장으로 상대적으로 많은 메모리 사용 | 저장된 이미지 사이즈가 상대적으로 작아 적은 메모리 사용 |
로딩 시간
|
사이즈를 변환하지 않아 비교적 빠름 | 사이즈 변환으로 비교적 느림 |
캐시 이미지 로딩 느림 | 캐시 이미지 로딩 빠름 | |
이미지 품질 | Glide에 비해 비트 수가 높아 고품질 이미지 표현 | Picasso에 비해 비트 수가 낮아 이미지 품질 떨어짐 |
GIF 지원 | GIF 지원 안함 | GIF 지원 |
오늘은 그중 Glide의 사용방법을 알아보겠습니다.
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
# 인터넷 사용 설정
안드로이드 프로젝트에 인터넷 권한을 허용하지 않았다면 AndroidManifest.xml에 인터넷 권한을 추가합니다.
<uses-permission android:name="android.permission.INTERNET" />
1. 기본 Glide 사용 방법
- 먼저 안드로이드 프로젝트 build.gradle (Module)에 Glide를 추가합니다.
dependencies {
implementation 'com.github.bumptech.glide:glide:4.13.2'
annotationProcessor 'com.github.bumptech.glide:compiler:4.13.2'
}
- 특별한 옵션 없이 기본 설정으로 이미지를 로드하기 위해서는 with(), load(), into()만 사용하면 됩니다.
// Activity, Fragment로부터 Context를 가져온다.
Glide.with(this)
// 로드할 이미지를 선택
.load(R.drawable.image)
// 이미즈를 보여줄 View
.into(imageView);
# 이미지 로딩 전후 처리 옵션
Glide.with(this)
.load(R.drawable.image)
// 이미지 로딩이 완료되기 전에 보여줄 이미지
.placeholder(R.drawable.image)
// 이미지 로딩 실패시 보여줄 이미지
.error(R.drawable.image)
// 이미지가 비어있을경우 보여줄 이미지
.fallback(R.drawable.image)
.into(imageView);
# 더 많은 옵션
// Activity, Fragment로부터 Context를 가져온다.
Glide.with(this)
// 로드할 이미지를 선택
.load(R.drawable.image)
// 이미지 로딩이 완료되기 전에 보여줄 이미지
.placeholder(R.drawable.image)
// 이미지 로딩 실패시 보여줄 이미지
.error(R.drawable.image)
// 이미지가 비어있을경우 보여줄 이미지
.fallback(R.drawable.image)
// 이미지 비율을 유지한 상태로 스케일. ImageView를 벗어나는 부분은 잘라냄.
.centerCrop()
// 이미지 비율을 유지한 상태로 스케일. ImageView를 벗어나지 않음.
.centerInside()
// 비율을 유지한 채, ImageView의 크기에 맞게 이미지의 크기를 조절
.fitCenter()
// Glide 4.x에 추가된 이미지를 원형으로 표시
.circleCrop()
// 이미지 로드 우선 순위
.priority(Priority.IMMEDIATE)
.priority(Priority.HIGH)
.priority(Priority.NORMAL)
.priority(Priority.LOW)
.into(imageView);
# 섬네일
기존에 사용하던 .thumbnail(0.1f) 방법의 경우 Deprecated 되었습니다.
다음과 같은 방법을 권장해드립니다.
RequestBuilder<Drawable> thumBuilder = Glide.with(this)
.asDrawable().sizeMultiplier(0.1f);
// 리소스 ID
int resourceId = R.drawable.gif;
Glide.with(this)
.load(resourceId)
.thumbnail(thumBuilder)
.into(imageView);
# 이미지 캐싱
Glide는 기본적으로 메모리 & 디스크에 이미지를 캐싱하여 불필요한 네트워크 연결을 줄입니다.
처음 메모리 캐싱을 한 후에, skipMemoryCache(true)로 캐싱을 중지하더라도, 그전에 저장된 캐시는 그대로 남아있습니다.
# 디스크 캐싱
디스크 캐싱은 메모리 캐시와 비슷한 기능으로 Glide는 기본적으로 디스크 캐싱을 수행합니다.
Glide.with(this)
.load(R.drawable.image)
// 메모리 캐싱 사용 안 함
.skipMemoryCache(true)
// 디스크 캐싱을 사용 안 함
.diskCacheStrategy(DiskCacheStrategy.NONE)
// 그외 옵션들
.diskCacheStrategy(DiskCacheStrategy.ALL)
.diskCacheStrategy(DiskCacheStrategy.RESOURCE)
.diskCacheStrategy(DiskCacheStrategy.DATA)
.diskCacheStrategy(DiskCacheStrategy.AUTOMATIC)
.into(imageView);
[Library] Glide GIF 이미지 로딩하기
# Glide 이미지 로딩 라이브러리 사용 방법 https://overpay.tistory.com/4 [Library] Glide 자주 사용하는 안드로이드 이미지 라이브러리 # 안드로이드 이미지 라이브러리 Glide는 Picasso와 함께 안드로이드 이..
overpay.tistory.com
'개발 > ANDROID 안드로이드' 카테고리의 다른 글
Android Meterial DropDown Menu 샘플 (1) | 2022.09.21 |
---|---|
android.util.Base64와 java.util.Base64의 차이점 (0) | 2022.09.16 |
안드로이드 Base64, 비트맵 이미지를 String 변경 방법 (0) | 2022.09.16 |
[Library] Glide 로컬파일, URL등 다양한 이미지 불러오기 (0) | 2022.09.01 |
[Library] Glide로 GIF 이미지 로딩하기 setLoopCount 반복 횟수 설정 (0) | 2022.08.31 |