问题描述
我有两个彼此重叠的图像视图。底部是模糊的图像视图,顶部只是普通图像视图。我们希望用户以1:1的比例上传图片,但是如果不是1:1的图片,则会显示模糊的图片视图,并使其看起来更好一些。
两个imageView的图像源(imagePath
)是相同的。我使用Firebase Storage,因此下载的图像数量会影响我的账单。所以基本上我想避免两次下载同一张图片。
因此对于基本的imageView,我照常使用glide。但对于模糊的图像视图。我在onResourceReady
中称呼它。使用下面的代码,我应该下载图像两次还是仅下载一次?特别是onResourceReady
中的代码,我不确定是从服务器重新下载图像还是从缓存使用图像。
这是我使用的代码
val imagePath = "http://www.imagePathIsTheSame.com/photo.jpg"
Glide.with(mContext)
.load(imagePath)
.error(R.drawable.eventempty)
.listener(object : RequestListener<Drawable> {
override fun onLoadFailed(e: GlideException?,model: Any?,target: Target<Drawable>?,isFirstResource: Boolean): Boolean {
recommendedEventViewHolder.blurryImageView.setimageDrawable(null)
return false
}
override fun onResourceReady(resource: Drawable?,dataSource: DataSource?,isFirstResource: Boolean): Boolean {
Glide.with(mContext)
.load(imagePath)
.apply(bitmapTransform(BlurTransformation(25,3))) // add blur effect
.into(recommendedEventViewHolder.blurryImageView)
return false
}
})
.into(recommendedEventViewHolder.posterImageView)
我可以使用resource:Drawable
中的onResourceReady
,但它看起来太慢了。那就是为什么我使用上面的代码
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)