728x90
안드로이드에서 이미지 로드 라이브러리란
Glide 외에 Coil, Picasso, Presco도 있지만 오늘은 Glide만 알아보자.
Glide란?
Glide란 Android에서 많이 사용하는 이미지 로드 라이브러리이다. 안드로이드 앱에서 이미지 로딩 및 디스플레이를 쉽게 처리 할 수 있게 도와주는 오픈 소스 라이브러리이다. 이미지 로딩은 안드로이드 앱 개발에서 자주 사용되는 작업 중 하나이며, 대량의 이미지를 효율적으로 로드하고 캐싱하여 앱 성능을 최적화하는 것이 중요한데, Glide는 이러한 작업들을 쉽게 처리할 수 있도록 도와준다.
공식페이지: https://bumptech.github.io/glide/
공식깃허브: https://github.com/bumptech/glide
Glide를 사용해보자.
1. dependency에 추가
dependencies {
// Glide
implementation "com.github.bumptech.glide:glide:$glide"
kapt "com.github.bumptech.glide:compiler:$glide"
}
2. Manifests 인터넷 허용
<uses-permission android:name="android.permission.INTERNET" />
3. 뷰에서 이미지 로드하기 (예시)
내 프로젝트에서 가져왔다.
https://github.com/ois0886/SangSangstagram
뷰홀더에서 사용
PostViewholder.kt
val glide = Glide.with(root)
val writerReference = uiState.writerProfileImageUrl?.let { storageReference.child(it) }
val postReference = uiState.imageUrl.let { storageReference.child(it) }
if (writerReference != null) {
writerReference.downloadUrl.addOnSuccessListener { uri ->
glide
.load(uri)
.diskCacheStrategy(DiskCacheStrategy.NONE)
.fallback(R.drawable.ic_baseline_person_pin_24)
.circleCrop()
.into(profileImage)
}
} else {
glide.load(uiState.writerProfileImageUrl?.let { storageReference.child(it) })
.fallback(R.drawable.ic_baseline_person_pin_24)
.into(profileImage)
}
Glide 관련 메서드 정리
- with(): Glide 작업을 시작하기 위해 사용하는 정적 메서드로, Context, Activity, Fragment, FragmentActivity 등을 인자로 받는다.
- load(): 이미지를 로드하기 위한 메서드로, 로드할 이미지의 URL, 리소스 ID, 파일 등을 인자로 받는다.
- placeholder(): 이미지가 로드되기 전에 임시로 표시할 이미지를 지정하는 메서드이다.
- error(): 이미지 로드에 실패했을 때 표시할 이미지를 지정하는 메서드이다.
- override(): 이미지의 크기를 재조정하기 위한 메서드로, 너비와 높이를 지정할 수 있다.
- fitCenter(): 이미지를 중앙에 맞추고 비율을 유지하여 크기를 조정하는 메서드이다.
- centerCrop(): 이미지를 중앙에 맞추고 자르는 메서드로, 이미지를 이미지뷰에 맞추고 잘라낸다.
- diskCacheStrategy(): 디스크 캐싱 전략을 설정하는 메서드로, 이미지를 어떻게 캐시할지 지정할 수 있다.
- priority(): 이미지 로드의 우선순위를 설정하는 메서드이다.
- thumbnail(): 섬네일 이미지를 설정하는 메서드로, 작은 이미지를 먼저 로드하여 빠른 로딩을 지원한다.
- into(): 이미지를 실제로 표시할 ImageView를 지정하는 메서드이다.
- asBitmap(): 이미지를 Bitmap 형태로 로드하는 메서드이다.
- asGif(): 이미지를 GIF 형태로 로드하는 메서드이다.
- listener(): 이미지 로드 상태를 감지하는 리스너를 설정하는 메서드이다.
- preload(): 이미지를 사전에 로드하는 메서드로, 실제로는 이미지뷰에 표시하지 않고 캐시에만 저장한다.
- downloadOnly(): 이미지를 다운로드만 하고 표시하지 않는 메서드이다.
- apply(): 옵션을 설정하는 메서드로, 여러 가지 옵션을 함께 설정할 수 있다.
참고
https://yeo0616.tistory.com/215
https://velog.io/@krrong/Android-Glide-%EC%82%AC%EC%9A%A9%ED%95%98%EA%B8%B0
https://hanyeop.tistory.com/135
https://no-dev-nk.tistory.com/77
728x90
'Android > Study' 카테고리의 다른 글
[Android] ConstraintLayout 이란 (0) | 2023.09.11 |
---|---|
[Android] View, ViewGroup, XML Layout 이란? (0) | 2023.09.10 |
[Android] Retrofit (0) | 2023.05.06 |
[Android] MVI 패턴이란? (0) | 2023.05.04 |
[Android] 의존성 주입(Dependency Injection) (0) | 2023.04.27 |