Glide加载图片格式设置

问题:使用Glide加载图片时设置centerCrop()或centerInside()等图片加载格式失效。
解决方案:
方法一:设置RequestListener,在onResourceReady()中在给imageview设置图片加载格式。

public static final RequestOptions options = new RequestOptions()
            .diskCacheStrategy(DiskCacheStrategy.ALL)
            .centerCrop()
            .placeholder(R.drawable.holder);

Glide.with(context)
                .asBitmap()
                .load(url)
                .listener(new RequestListener<Bitmap>() {
                    @Override
                    public boolean onLoadFailed(@Nullable GlideException e, Object model, Target<Bitmap> target,
                                                boolean isFirstResource) {
                        return false;
                    }

                    @Override
                    public boolean onResourceReady(Bitmap resource, Object model, Target<Bitmap> target,
                                                   DataSource dataSource, boolean isFirstResource) {
                       imageview.setScaleType(ScaleType.CENTER_CROP);
                        return false;
                    }
                })
                .apply(feedOptions)
                .transition(options)
                .into(imageView);

方法二:自定义BitmapImageViewTarget,在onResourceReady()中给imageView设置图片加载格式,最后江target设置给Glide

public class MyBitmapImageViewTarget extends BitmapImageViewTarget {

    public MyBitmapImageViewTarget(ImageView view) {
        super(view);
    }

    @Override
    public void onResourceReady(Bitmap resource, @Nullable Transition<? super Bitmap> transition) {
        super.onResourceReady(resource, transition);
        if (resource != null && view.getScaleType() != ScaleType.CENTER_CROP) {
            view.setScaleType(ScaleType.CENTER_CROP);
        }
    }
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容