티스토리 뷰

728x90



이번 포스팅에서는 Glide 의 placeholder, thumbnail, imagecaching 에 대해 알아보자.

참고로, 지난 포스팅에서는 Glide 의 loading, override, transforming 에 대해 알아 보았다.

[Android] - 유용한 이미지 라이브러리 - Glide (1)



PlaceHolder

요청받은 이미지가 나타나기 전까지 지정한 이미지를 보여준다.

 

◼ PlaceHolder

네트워크로 이미지를 요청하거나 큰 이미지를 요청하여 시간이 오래 걸릴 때

PlaceHolder 로 지정한 이미지를 보여준다.

 

◼ Error PlaceHolder

이미지 로드에 실패할 경우 PlaceHolder 로 지정한 이미지를 보여준다.

 

◼ Fallback PlaceHolder

요청된 URl or 모델이 null 인 경우 PlaceHolder 로 지정한 이미지를 보여준다.



이미지 캐싱

Glide 는 기본적으로 메모리 & 디스크에 이미지를 캐싱하여 다음번엔 빠른 이미지 로딩을 지원한다.

Glide 는 이미지를 불러오기 위해 아래와 같은 절차로 여러 캐시를 확인한다.

1. Active resources — 현재 이 이미지가 다른 뷰에 나타나는가?

2. Memory cache — 이 이미지가 최근에 메모리에 로드되었거나, 여전히 메모리에 남아있는가?

3. Resource — 이 이미지가 예전에 디코드되었거나, 변형되었거나, 디스크 캐시에 기록되었는가?

4. Data — 이 이미지가 이전에 디스크 캐시에 기록되었던 데이터였는가?

출처 : https://medium.com/android-news/best-strategy-to-load-images-using-glide-image-loading-library-for-android

 

◼ 메모리 캐시

기본적으로 메모리 캐싱을 하기때문에, 메모리 캐싱을 위해 추가적으로 할 일은 없다.

단, URL 이미지 로딩 시 한번 로드한 이미지는 chache 에 저장되어 서버에서 해당 이미지를 변경해도

App 의 이미지는 갱신되지 않는다.

 

이런 경우, skipMemoryCache(true) 로 메모리 캐시를 사용하지 않을 수 있다.

 

◼ 디스크 캐시

기본적으로 디스크 캐싱을 수행하며, 기본적인 개념은 메모리 캐시와 같다.

하단과 같은 diskCacheStrategy 를 지원한다.

- DiskCacheStrategy.ALL : 모든 이미지를 캐싱.

- DiskCacheStrategy.AUTOMATIC : RESOURCE 를 기반으로 전략적인 캐싱. (Default)

- DiskCacheStrategy.DATA : 원본 이미지만 캐싱.

- DiskCacheStrategy.RESOURCE : 해상도를 줄인 이미지만 캐싱

- DiskCacheStrategy.NONE : 디스크 캐싱 안 함.

 

메모리 캐싱과는 별개이므로, 둘다 사용하지 않을 경우 다음과 같이 둘다 꺼주어야 한다.



Thumbnail

요청받은 이미지가 나타나기 전까지 지정한 thumbnail 을 보여준다.

하단과 같이 0.1f 로 지정했다면 실제 이미지 크기중 10% 크기의 thumbnail 이 생성된다.

 

 

[이미지 loading 중] [이미지 loading 완료]



Target

Glide 는 기본적으로 이미지를 비동기로 로드하여 이미지뷰에 보여준다.

Glide 에서 target 을 이용하면 bitmap, drawable, placeholder 를 받아 처리할 수 있다.

 

 

◼ Custom target

Custom target 을 이용하면 쉽게 bitmap 을 인자로 받을 수 있다.



728x90

'Android' 카테고리의 다른 글

Glide 로 background image 설정하기  (0) 2021.08.06
Activity Result API  (0) 2021.06.04
유용한 이미지 라이브러리 - Glide (1)  (0) 2021.05.13
Android 진동 울리기  (1) 2020.06.18
객체 직렬화 - Bundle  (0) 2020.03.19
댓글