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);
        }
    }
}

© 版权声明
THE END
如果内容对您有所帮助,就支持一下吧!
点赞0 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容