[안드로이드] 이미지 로딩 라이브러리 Glide 사용하기
오늘은 이미지 로딩 라이브러리 Glide사용법을 알려드리겠습니다.
흔히 ImageView에 이미지를 넣을때 이미지가 기기 내부 resource 에 존재한다면 쉽게 가능하겠지만 서버에 존재하는 이미지 즉 http 통신을 통해서 가져와야 하는 이미지는 너무 까다롭습니다.
Glide는 이모든 고민은 해결해주는 라이브러리입니다.
*Glide 깃 주소
bumptech/glide
An image loading and caching library for Android focused on smooth scrolling - bumptech/glide
github.com
*사용방법
gradle에 추가
dependencies {
implementation 'com.github.bumptech.glide:glide:4.11.0'
annotationProcessor 'com.github.bumptech.glide:compiler:4.11.0'
}
필수 값
Glide.with(this)
.load("https://www.youtube.com/s/desktop/34930df8/img/favicon_32.png")
.into(imageView)
with()
- activity 객체 삽입
load()
- 뿌리고자 하는 이미지 url 경로
into()
- 이미지뷰
* 위 세개는 필수로 넣어줘야 하는 값들이고 아래는 추가할수있는 기능들입니다.
error()
- 오류가 났을때 보여줄 이미지(이때는 리소스에 있는 이미지를 넣어줘야함)
placeholder()
- 이미지를 로딩하는 동안 보여줄 이미지
override()
- 이미지가 클때 원하는 사이즈로 잘라서 가져올수있음(속도가 빨라짐)
asGif()
- gif 이미지 뿌려줄수있음
diskCacheStrategy()
- 디스크 캐시를 저장 설정, 캐시를 저장해놓으면 같은 url 경로면 캐시에서 이미지를 가져온다
- 단 url경로에 이미지가 바뀌었을때 바뀐 이미지로 나오지가않음(캐시에서 가져오기때문)
- DiskCacheStrategy.DATA
- DiskCacheStrategy.NONE 등등..
finCenter()
- ImageView의 ScaleType fitCenter 와 같은기능
transform()
- 이미지뷰의 모양을 바꿀수있다.
* 서버 이미지를 비트맵으로 변환
Glide.with(this)
.asBitmap()
.load(url)
.into(new CustomTarget<Bitmap>() {
@Override
public void onResourceReady(@NonNull Bitmap resource, @Nullable Transition<? super Bitmap> transition) {
// 이미지를 비트맵으로 변환 완료
}
@Override
public void onLoadCleared(@Nullable Drawable placeholder) {
}
});
이런식으로 이미지를 비트맵으로 변환이 완료가 되었을때 콜백을 받아 작업을 수행할수도 있습니다.
이외에도 사용할수있는 기능들이 너무 많지만... 가장 많이 사용하는 기능들만 정리해봤습니다!
더 궁금하신것이 있으면 댓글 남겨주시면 답변드리겠습니다!