Glide加载图片格式设置

2020-12-16  本文已影响0人  旭仔_2e16

问题:使用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);
        }
    }
}
上一篇 下一篇

猜你喜欢

热点阅读