圆形图显示问题

开发中如果使用了CircleImageView等第三方圆形控件,如果你又恰好使用Glide作为加载图片,那么在第一次加载图片的过程中可能会出现只显示占位图,但图片没有显示的问题。以下会介绍几种解决方法。

第一种解决方式是改变Glide显示图片的方式:

    Glide.with(this)
         .load(url)
         .asBitmap()
         .centerCrop()
         .override(300, 300)
         .error(R.mipmap.delete)
         .into(new BitmapImageViewTarget(imageView) {
                  @Override
                  protected void setResource(Bitmap resource) {
                  RoundedBitmapDrawable circularBitmapDrawable =
                          			        RoundedBitmapDrawableFactory
                      .create(context.getResources(), resource);
                  circularBitmapDrawable.setCircular(true);
                  imageView.setImageDrawable(circularBitmapDrawable);
                  }
           });

第二种就是使用系统自带的ImageView代替第三方的CircleImageView,圆形图片的处理交给Glide处理。

public static void loadCircleImage(Context context, ImageView imageView, String url) {
        ImageLoadConfig circleImageConfig = new ImageLoadConfig.Builder()
                .setAsBitmap(true)
                .setErrorResId(R.drawable.ic_def_user)
                .setCrossFade(true)
                .setCropCircle(true)
                .build();
        Glide.with(context).load(url).apply(circleImageConfig).into(imageView);
    }

你可能感兴趣的:(Android及开发)