안드로이드
[Android] Glide를 통해 이모티콘 Gif 구현하기
코딩하는후운
2024. 6. 14. 18:02
반응형
Glide를 통해 Gif를 보여주는데
- 이모티콘 바텀시트에서는 Gif가 움직이면 안됌
- 이모티콘 클릭시 정해진 횟수로 Gif 움직여야함
- 디스크 캐싱을 하는데 이미지가 변경되거나 하면 새로운거 보여주고 다시 캐싱 해야함.
이러한 요구 사항을 작업 하려고 한다.
1. Gif 움직이지 않게 하기
Glide.with(activity)
.asBitmap()
.load(R.drawable.gif_rain)
.apply(RequestOptions().diskCacheStrategy(DiskCacheStrategy.AUTOMATIC))
.into(ivEmoticon)
asBitMap()으로 움직이지 않게 한다.
2. 정해진 횟수로 Gif 움직이기
Glide.with(activity)
.asGif()
.load(R.drawable.gif_rain)
.apply(RequestOptions().diskCacheStrategy(DiskCacheStrategy.AUTOMATIC))
.listener(
object : RequestListener<GifDrawable> {
override fun onLoadFailed(
e: GlideException?,
model: Any?,
target: Target<GifDrawable>?,
isFirstResource: Boolean
): Boolean {
return false
}
override fun onResourceReady(
resource: GifDrawable?,
model: Any?,
target: Target<GifDrawable>?,
dataSource: DataSource?,
isFirstResource: Boolean
): Boolean {
resource?.setLoopCount(3)
return false
}
}
)
.into(ivEmoticon)
listener에 onResourceReady 이미지가 준비되면 LoopCount를 지정해준다.
3. 디스크 캐싱을 하는데 이미지가 변경되거나 하면 새로운거 보여주고 다시 캐싱
Glide.with(activity)
.asBitmap()
.load(R.drawable.gif_rain)
.apply(RequestOptions().diskCacheStrategy(DiskCacheStrategy.ALL))
.signature(ObjectKey("지정할 키"))
.into(ivEmoticon)
signature를 설정하여 이미지 link + signature키를 쌍으로 하여 다를 경우 다시 캐싱한다고 한다.
- 이 부분은 실제 확인 해보진 못했다.(작업 해봐야 함)
반응형