안드로이드 이미지 로드 프레임워크이다.
gradle(project)
dependencies {
implementation 'com.github.bumptech.glide:glide:${version}'
annotationProcessor 'com.github.bumptech.glide:compiler:${version}'
}
필요한 것 : context / image url / 로드할 view
Glide.with(context)
.load(url)
.error(url)
.placeholder(url)
.centerCrop()
.listener(object : RequestListener<Drawable> {
override fun onLoadFailed(
e: GlideException?,
model: Any?,
target: Target<Drawable>?,
isFirstResource: Boolean
): Boolean {
return false
}
override fun onResourceReady(
resource: Drawable?,
model: Any?,
target: Target<Drawable>?,
dataSource: DataSource?,
isFirstResource: Boolean
): Boolean {
return false
}
})
.into(imageView)
load(url) : url 로드
error(url) : 로드 실패시 보여줄 이미지 url
placeholder(url) : 로드 진행 중 보여줄 이미지 url
centerCrop() : centerCrop(정사각형 만들고 넘어가는 것은 자르는 작업) 외에도 여러가지 가능
listener() : 로드 실패시, 준비 완료시 리스너
into(view) : view에 로드
Glide.with(context)
.asBitmap()
.centerCrop()
.load(url)
.listener(object : RequestListener<Bitmap> {
override fun onLoadFailed(
e: GlideException?,
model: Any?,
target: Target<Bitmap>?,
isFirstResource: Boolean
): Boolean {
return false
}
override fun onResourceReady(
resource: Bitmap?,
model: Any?,
target: Target<Bitmap>?,
dataSource: DataSource?,
isFirstResource: Boolean
): Boolean {
return false
}
})
.into(object : CustomTarget<Bitmap>() {
override fun onResourceReady(resource: Bitmap, transition: Transition<in Bitmap>?) {
view.background = RoundedBitmapDrawableFactory.create(context.resources, resource).apply {
cornerRadius = view.width * radiusPercent
}
}
override fun onLoadCleared(placeholder: Drawable?) {}
})