【问题标题】:Glide placeholder doesn't fit the ImageViewGlide 占位符不适合 ImageView
【发布时间】:2017-12-17 08:38:36
【问题描述】:

这是我的代码

 Glide.with(context)
.load(url)
.asBitmap()
.placeholder(resourceId);
.centerCrop()
.into(new BitmapImageViewTarget(imageView) {
      @Override
      protected void setResource(Bitmap resource) {
          RoundedBitmapDrawable circularBitmapDrawable =
               RoundedBitmapDrawableFactory.create(imageView.getResources(),
               resource);
          circularBitmapDrawable.setCircular(true);
          imageView.setImageDrawable(circularBitmapDrawable);
      }
  });

每次我调用此函数加载用户头像时,placeHolder 都会被移除,并且我的 ImageView 显示为空背景视图,而 url 加载和下载的图像放置在 ImageView 上。

【问题讨论】:

  • 图片类型是什么???
  • 哪张图片? placeHolder 加载一个drawable,图像视图是一个imageView
  • 占位符图片...我的意思是 png 或矢量???
  • 出现故障,请检查您的 logcat 是否有错误。
  • @ShohanAhmedSijan 这是一个可绘制的形状

标签: android android-glide


【解决方案1】:

尝试覆盖 onLoadStarted 方法并在其中设置占位符图像。

Glide.with(context)
                .load(url)
                .diskCacheStrategy(DiskCacheStrategy.SOURCE)
                .into(new GlideDrawableImageViewTarget(imageView) {
                    @Override
                    public void onResourceReady(GlideDrawable drawable, GlideAnimation anim) {
                        super.onResourceReady(drawable, anim);

                    }

                    @Override
                    public void onLoadFailed(Exception e, Drawable errorDrawable) {
                        super.onLoadFailed(e, errorDrawable);
                        imageView.setImageResource(R.drawable.avatar);
                    }

                    @Override
                    public void onLoadStarted(Drawable placeholder) {
                        super.onLoadStarted(placeholder);
                        imageView.setImageResource(R.drawable.avatar);
                    }
                });

【讨论】:

    【解决方案2】:

    在加载时给出resourceId...

    Glide
     .with(context)
     .load(resourceId)
     .placeholder(resourceId)
     .fitCenter()
     .into(new BitmapImageViewTarget(imageView) {
      @Override
      protected void setResource(Bitmap resource) {
          RoundedBitmapDrawable circularBitmapDrawable =
               RoundedBitmapDrawableFactory.create(imageView.getResources(),
               resource);
          circularBitmapDrawable.setCircular(true);
          imageView.setImageDrawable(circularBitmapDrawable);
      }
    });
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-01-24
      • 2015-11-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-07-15
      • 2015-03-28
      • 1970-01-01
      相关资源
      最近更新 更多