前言
Glide是 Google推荐的图片加载库,它可以支持来自url,Android资源,文件,Uri中的图片加载,同时还支持gif图片的加载,以及各种图片显示前的bitmap处理(例如:圆角图片,圆形图片,高斯模糊,旋转,灰度等等),缓存处理,请求优先级处理,动画处理,缩略图处理,图片大小自定义等等.可谓是非常的强大.
一般情况下我们都是使用Glide加载图片到ImageView上,那么如何加载到Layout的背景上呢?
Layou是一个用于设计用户界面的强大工具,因为它能消除嵌套视图组和保持我们布局为扁平结构,这可以提高运行时性能。下面话不多说了,来一起看代码吧!
Glide.with(this)
.load("你需要加载的网址或其他参数")
.asBitmap()
.into(new SimpleTarget<Bitmap>(180,180) {//设置宽高
@Override
public void onResourceReady(Bitmap resource, GlideAnimation<? super Bitmap> glideAnimation) {
Drawable drawable = new BitmapDrawable(resource);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN) {
bg.setBackground(drawable);//设置背景
}
}
});
Glide4.4使用方法如下:
view即我们想要加载的控件:
SimpleTarget<Drawable> simpleTarget = new SimpleTarget<Drawable>() {
@Override
public void onResourceReady(Drawable resource, Transition<? super Drawable> transition) {
view.setBackground(resource);
}
};
Glide.with(this).load(url).into(simpleTarget);
关于SimpleTarget :@deprecated Use {@link CustomViewTarget} if loading the content into a view, the download API if
in the background
val layout = helper.getView<LinearLayout>(R.id.item_layout)
val target = object : CustomViewTarget<LinearLayout, Drawable>(layout) {
override fun onResourceReady(resource: Drawable, transition: Transition<in Drawable>?) {
layout.background = resource
}
override fun onResourceCleared(placeholder: Drawable?) {
layout.background = placeholder
}
override fun onLoadFailed(errorDrawable: Drawable?) {
layout.background = errorDrawable
}
}
Glide.with(layout.context).load(item.image).into(target)