Android使用Glide加载View背景图片

一般常用Glide加载图片到ImageView上,如何加载到View及Layout的背景上呢?

Glide 4 及以上

public static void loadViewBackground(String url, final View view) {
    SimpleTarget<Drawable> simpleTarget = new SimpleTarget<Drawable>() {
        @Override
        public void onResourceReady(@NonNull Drawable resource, Transition<? super Drawable> transition) {
            if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN) {
                view.setBackground(resource);
            }
        }
    };
    GlideApp.with(view.getContext()).load(url).into(simpleTarget);
}

常用方式

第一种方式:

Glide.with(context)
    .load(url)
    .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) {
                layout.setBackground(drawable); //设置背景
            }
        }
    });

该方式按照设置的宽高去截取图片,再去加载到控件背景上,有时会导致图片显示不全

第二种方式:

Glide.with(context)
    .load(url)
    .into(new ViewTarget<View, GlideDrawable>(layout) { //括号里为需要加载的控件
        @Override
        public void onResourceReady(GlideDrawable resource, GlideAnimation<? super GlideDrawable> glideAnimation) {
            this.view.setBackground(resource.getCurrent());
        }
    });

该方式则完美加载图片

上一篇 Genymotion模拟器无法开启的解决方法
下一篇 Gradle设置apk文件输出命名
目录
文章列表
1 Android解决帧动画OOM的组件FrameAnimDrawable
Android解决帧动画OOM的组件FrameAnimDrawable
2
Android封装ImageGetter接口
Android封装ImageGetter接口
3
微信小程序navigateBack更新上一页数据
微信小程序navigateBack更新上一页数据
4
CentOS下部署Prometheus
CentOS下部署Prometheus
5
Spring Cloud获取本地服务实例方法getLocalServiceInstance()过时
Spring Cloud获取本地服务实例方法getLocalServiceInstance()过时
最新评论
一位WordPress评论者
一位WordPress评论者
2月12日
您好,这是一条评论。若需要审核、编辑或删除评论,请访问仪表盘的评论界面。评论者头像来自 Gravatar。