Glide

노력을 즐겼던 사람·2020년 8월 29일
0

사오정 앱개발

목록 보기
10/11

공식 문서를 읽으며 Glide가 어떻게 동작하는지 확인하고 서버에 업로드 된 이미지를 여러 비율로 불러올 수 있는지 체크해보자

캐싱

Glide는 기본적으로 통신을 시작하기 전에 4가지를 체크한다.

  1. Active resources : 이미지가 이미 다른 View에서 출력되고 있는가?
  2. Memery cache : 이미지가 최근에 불러와졌고 아직 메모리에 있는가?
  3. Resource : 이미지가 disk cache 에 디코딩, 변형, 출력된 적이 있는가?
  4. Data : 이미지 데이터가 disk cache 에 포함되어 있는가?

처음 두 단계는 메모리에 이미지가 있는지 체크하고 있다면 즉시 이미지를 리턴한다. 그 다음 두 단계는 disk에 이미지가 있는지 체크하고 만약 있다면 최대한 빠르게 이미지를 리턴한다. 다음 두 단계는 비동기로 일어난다.
위의 네 가지를 모두 실패하면 그제서야 요청을 보낸다. 이런 과정을 기본적으로 지원한다니 놀랍다. 당연히 커스텀도 가능하다. 나중에 커스텀이 필요하면 공식 문서를 참고하자

변형

여러가지 형태로 변형할 수 있다. RequestOption 클래스와 함께 옵션을 조정할 수 있고 각 요청마다 직접 옵션을 달아서 조정할 수 있다. 또한 커스텀 변형 클래스를 생성할 수 있다.
CenterCrop, FitCenter, CircleCrop, RoundedCorners 등 많은 클래스가 존재하고 이번 프로젝트에서는 CenterCropRoundedCorner 를 사용했다.

CenterCrop 은 불러올 이미지의 중앙과 이미지를 넣을 ImageView의 중앙을 맞추고 ImageView를 벗어나는 부분을 잘라버린다. 그리고 RoundedCorners 는 이미지의 각 모서리를 둥글게 만들어준다.

profile
노력하는 자는 즐기는 자를 이길 수 없다 를 알면서도 게으름에 지는 중

0개의 댓글