关键词:glide加载网络图片,glide加载视频关键帧
做安卓的对kotlin和glide应该都不陌生,在这里就不多说了,但是很多原生开发(包括以前的我)对于kotlin扩展方法这一块都没有想到去利用,本篇文章主要是记录自己用的很舒服的几个结合kotlin特性和glide加载网络图片的imageview的扩展方法;也是抛砖引玉让大家方便自己不要老是惦记自己那些个工具类了,大家可以根据自己的需求更改。
fun ImageView.loadPicThumbnail(url :String){
Glide.with(context)
.load(url)
.error(R.mipmap.pic_err)
.placeholder(R.mipmap.pic_place)
.thumbnail( 0.1f )
.into(this)
}
一些参数的复习和解释
glide.thumbnail() 这个 方法叫缩略图,是一个加载大图时需要的参数,为什么这么说呢?
比如上文的.thumbnail( 0.1f )中的参数0.1f,Glide 将会显示原始图像的10%的大小。如果原始图像有 1000x1000 像素,那么缩略图将会有 100x100 像素。那么实际情况中缩略图会比真正的原始图像加载的更快,所以上例中的代码加载一个比较大的图片时,它的图片加载顺序应该是:
占位图 -> 缩略图 -> 原始图像
这是例子,下面有两张加载出来的原始图像,两张缩略图,这对用户体验上来说是一种改观,起码让用户知道图片一直在努力加载
但是如果原始图像本来就比较小,那么对于用户来说就没有差别,对于资源来说也是一个浪费,所以这个参数一般是在列表中展示图片的时候使用
我们也先上方法
fun ImageView.frame0Thumbnail(url :String){
Glide.with(context)
.setDefaultRequestOptions(
RequestOptions()
.frame(0)
.centerCrop())
.load(url)
.error(R.mipmap.pic_err)
.placeholder(R.mipmap.pic_place)
.thumbnail( 0.1f )
.diskCacheStrategy(DiskCacheStrategy.AUTOMATIC)
.into(this)
}
一些参数的复习和解释
import android.widget.ImageView
import com.bumptech.glide.Glide
import com.bumptech.glide.load.engine.DiskCacheStrategy
import com.bumptech.glide.request.RequestOptions
import com.fawvw.hmi.dvr.R
fun ImageView.frame0(url :String){
Glide.with(context)
.setDefaultRequestOptions(
RequestOptions()
.frame(0)
.centerCrop())
.load(url)
.error(R.mipmap.pic_err)
.placeholder(R.mipmap.pic_place)
.into(this)
}
fun ImageView.frame0Thumbnail(url :String){
Glide.with(context)
.setDefaultRequestOptions(
RequestOptions()
.frame(60)
.centerCrop())
.load(url)
.error(R.mipmap.pic_err)
.placeholder(R.mipmap.pic_place)
.thumbnail( 0.1f )
.diskCacheStrategy(DiskCacheStrategy.AUTOMATIC)
.into(this)
}
fun ImageView.loadPic(url :String){
Glide.with(context)
.load(url)
.error(R.mipmap.pic_err)
.placeholder(R.mipmap.pic_place)
.into(this)
}
fun ImageView.loadPicThumbnail(url :String){
Glide.with(context)
.load(url)
.error(R.mipmap.pic_err)
.placeholder(R.mipmap.pic_place)
.thumbnail( 0.1f )
.into(this)
}
总得来说还是挺基础的,主要是一个复习和记录,其实glide还有一些进阶用法,比如自己监听加载状态或者改变加载图片的色值以加快加载速度等,主要还是看大家各自的需求,直接load又不是不能用