我想使用Glide Android库下载图像并以ImageView显示。

在以前的版本中,我们使用:

Glide.with(mContext).load(imgUrl)
                .thumbnail(0.5f)
                .placeholder(R.drawable.PLACEHOLDER_IMAGE_NAME)
                .error(R.drawable.ERROR_IMAGE_NAME)
                .crossFade()
                .diskCacheStrategy(DiskCacheStrategy.ALL)
                .into(imageView);

但是我看过Glide文档:



我担心的是缺少占位符,错误,GlideApp和其他选项。

我在用
 compile 'com.github.bumptech.glide:glide:4.0.0'

我在哪里做错了?关于here
GlideApp.with()如何使用?

该API与AppGlideModule在同一包中生成,默认情况下命名为GlideApp。应用程序可以通过以GlideApp.with()而不是Glide.with()开始所有加载来使用API​​:
GlideApp.with(fragment)
   .load(myUrl)
   .placeholder(placeholder)
   .fitCenter()
   .into(imageView);

最佳答案

尝试使用 RequestOptions :

RequestOptions requestOptions = new RequestOptions();
requestOptions.placeholder(R.drawable.ic_placeholder);
requestOptions.error(R.drawable.ic_error);

Glide.with(context)
     .setDefaultRequestOptions(requestOptions)
     .load(url).into(holder.imageView);

编辑

如果.setDefaultRequestOptions(requestOptions)不起作用,请使用.apply(requestOptions):
Glide.with(MainActivity.this)
            .load(url)
            .apply(requestOptions)
            .into(imageview);
 // or this
 Glide.with(MainActivity.this)
            .load(url)
            .apply(new RequestOptions().placeholder(R.drawable.booked_circle).error(R.drawable.booked_circle))
            .into(imageview);

 // or this
 Glide.with(MainActivity.this)
            .load(url)
            .apply(RequestOptions.placeholderOf(R.drawable.booked_circle).error(R.drawable.))
            .into(imageview);

编辑2奖励

这是Glide-4的其他一些变化
  • 如何使用 requestOptions.circleCropTransform();
  • 如何使用 Cross fades()
  • 如何在Glide-4中使用 GlideDrawableImageViewTarget
  • 如何使用 GifDrawable 作为目标参数
  • 08-17 20:56