Glide 글라이드란?
Glide의 주요 초점은 모든 종류의 이미지 목록을 가능한 한 부드럽고 빠르게 스크롤하는 데 있지만 Glide는 원격 이미지를 가져오고 크기를 조정하고 표시해야하는 거의 모든 경우에도 효과적입니다. 또한 Glide는 비디오 스틸, 이미지 및 애니메이션 GIF 가져 오기, 디코딩 및 표시를 지원합니다.
Glide git : https://github.com/bumptech/glide
글라이드를 왜 사용해야 할까?
이미지 로딩을 구현할 때는 HTTP 통신을 안정되게 구현하고, 비트맵으로 디코딩하면서 메모리가 넘치거나 새지 않도록 주의해야 한다. 네트워크 호출과 디코딩은 단순히 백그라운드 스레드에서 동작하는 것만으로는 충분하지 않고 더 적극적으로 병렬성을 활용해야 한다. 화면 회전, 전환, 스크롤 때 반복적인 요청이 가지 않도록 이미지를 캐시하고, 불필요해진 요청은 빠른 시점에 취소해서 더 나은 UI 반응을 제공하면서 자원을 절약해야 한다. 이 과제들을 모두 해결하려다 보면 처리 흐름은 복잡해지고, 비슷한 코드가 반복되기 쉽다.
Naver개발자 블로그 - Hello world
단순 이미지를 보여주는 경우와 다르게 url 이미지를 보여줘야 할 경우
로딩 실패처리, 재시도처리, Out of Memory, 캐시,병렬처리, 디코딩, 이미지재활용 등등 처리해야 할 부분이 너무 많다.
그러므로 위 문제를 해결한 라이브러리 Glide를 사용할 경우 개발 시간도 단축되고 편리하게 개발할 수 있다.
사용방법
1.Gradle에 다음과 같이 추가하거나
repositories {
google()
mavenCentral()
}
dependencies {
implementation 'com.github.bumptech.glide:glide:4.12.0'
annotationProcessor 'com.github.bumptech.glide:compiler:4.12.0'
}
2. Maven에 추가하는 방법 둘 중 하나로 하면 된다.
<dependency>
<groupId>com.github.bumptech.glide</groupId>
<artifactId>glide</artifactId>
<version>4.12.0</version>
</dependency>
<dependency>
<groupId>com.github.bumptech.glide</groupId>
<artifactId>compiler</artifactId>
<version>4.12.0</version>
<optional>true</optional>
</dependency>
Glide 사용 예시
Glide
.with(myFragment)
.load(url)
.centerCrop()
.placeholder(R.drawable.loading_spinner)
.into(myImageView);
글라이드 속성
- with() : context 받음
- load(R.raw.Loading) : 이미지 로딩
- override(width, height) : 지정한 이미지의 크기만큼 불러올 수 있다. 이미지 로딩 속도 최적화를 도와줌
- placeholder() : 이미지를 보여주는 동안 보여줄 이미지 지정
- error() : 이미지 로딩에 실패했을 경우 실패 이미지 지정
- thumbnail() : 지정한 %비율 만큼 미리 이미지를 가져와서 보여줄 수 있음. ex)0.1f 는 실제 이미지 해상도의 10%로 흐리게 보여줌
- asGif() : GIF이미지 로딩
- diskCacheStrategy(DiskCacheStrategy.RESOURCE) : 캐싱된 리소스와 로드할 리소스가 같은 리소스일때 캐싱된 리소스 사용, gif 느릴 경우 사용
참고
출처: https://ebbnflow.tistory.com/176 [Dev Log : 삶은 확률의 구름]
출처: https://gun0912.tistory.com/17 [박상권의 삽질블로그]