Glide RequestListener 이미지 바이트, 크기 확인하기
Glide RequestListener 등록
- RequestListener : Glide의 이미지 Load 실패 or Load 성공에 Callback 받는 Listener
- 이미지 Load 실패 시와 성공 시에 따른 처리가 가능하며, 여기선 리사이징된 이미지 바이트와 크기를 확인
- 실패 시 onLoadFailed() Callback
- 성공 시 onResourceReady() Callback
GlideUtil.with(binding.ivImage) {
load(item?.encodePath())
.override(Target.SIZE_ORIGINAL)
.listener(createLogListener()) // RequestListener 추가
.into(binding.ivImage)
}
/**ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ*/
private fun createLogListener(): RequestListener<Drawable> {
return object : RequestListener<Drawable> {
// Image Load 실패 시 CallBack
override fun onLoadFailed(
e: GlideException?,
model: Any?,
target: Target<Drawable>?,
isFirstResource: Boolean
): Boolean {
return false
}
// Image Load 후 CallBack
override fun onResourceReady(
resource: Drawable?,
model: Any?,
target: Target<Drawable>?,
dataSource: DataSource?,
isFirstResource: Boolean
): Boolean {
if (resource is BitmapDrawable) {
val bitmap = resource.bitmap
Log.d(
"Glide", String.format(
"bitmap %,d btyes, size: %d x %d",
bitmap.byteCount, // 리사이징된 이미지 바이트
bitmap.width, // 이미지 넓이
bitmap.height // 이미지 높이
)
)
}
return false
}
}
}