glide:4.8.0 在某些手机上图片加载不出来问题

1,522 阅读1分钟

这种写法在华为P9手机图片加载不出来

Glide.with(this)
    .load(reportDetailUrl)
    .listener(new RequestListener<Drawable>() {
        @Override
        public boolean onLoadFailed(@Nullable GlideException e, Object model, Target<Drawable> target, boolean isFirstResource) {
            vPlaceholder.setVisibility(View.GONE);
            return false;
        }

        @Override
        public boolean onResourceReady(Drawable resource, Object model, Target<Drawable> target, DataSource dataSource, boolean isFirstResource) {
            vPlaceholder.setVisibility(View.GONE);
            return false;
        }
    })
    .into(new CustomViewTarget(ivReportDetailImg) {

        @Override
        public void onLoadFailed(@Nullable Drawable errorDrawable) {

        }

        @Override
        public void onResourceReady(@NonNull Object resource, @Nullable Transition transition) {
            if(resource instanceof BitmapDrawable){
                ivReportDetailImg.setImageBitmap(((BitmapDrawable) resource).getBitmap());
            }
        }

        @Override
        protected void onResourceCleared(@Nullable Drawable placeholder) {

        }
    });

用下面这种写法图片可以加载出来

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

        @Override
        public boolean onResourceReady(Bitmap resource, Object model, Target<Bitmap> target, DataSource dataSource, boolean isFirstResource) {
            vPlaceholder.setVisibility(View.GONE);
            return false;
        }
    })
    .into(new SimpleTarget<Bitmap>() {
        @Override
        public void onResourceReady(Bitmap resource, Transition<? super Bitmap> transition) {
            ivReportDetailImg.setImageBitmap(resource);
        }
    });