Rit*_*sar 78 android android-layout android-glide
我想用ImageView
Android库下载图片并显示GlideApp.with()
.
在以前的版本我们使用:
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);
Run Code Online (Sandbox Code Playgroud)
但我看过Glide文档:
它说用
Glide.with()
而不是GlideApp.with()
我担心的是缺少占位符,错误,GlideApp和其他选项.
我在用
compile 'com.github.bumptech.glide:glide:4.0.0'
Run Code Online (Sandbox Code Playgroud)
我哪里做错了?这里参考
怎么AppGlideModule
用过?
API GlideApp
与GlideApp.with()
默认情况下命名的包在同一个包中生成.应用程序可以通过启动所有加载来使用API,Glide.with()
而不是ImageView
:
GlideApp.with(fragment)
.load(myUrl)
.placeholder(placeholder)
.fitCenter()
.into(imageView);
Run Code Online (Sandbox Code Playgroud)
Nil*_*hod 198
尝试使用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);
Run Code Online (Sandbox Code Playgroud)
编辑
如果.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);
Run Code Online (Sandbox Code Playgroud)
编辑2奖金
以下是Glide-4的其他一些变化
requestOptions.circleCropTransform();
Cross fades()
GlideDrawableImageViewTarget
在Glide-4中使用GifDrawable
用作目标参数ND1*_*10_ 28
如果你使用Glide包依赖 compile 'com.github.bumptech.glide:glide:3.7.0'
,那么应该使用下面的代码
GlideApp
.with(your context)
.load(url)
.centerCrop()
.placeholder(R.drawable.loading_image)
.error(R.drawable.error_image)
.into(myImageView);
Run Code Online (Sandbox Code Playgroud)
注意:如在doc中
圆形图片:已知CircleImageView/CircularImageView/RoundedImageView与TransitionDrawable(.crossFade()与.thumbnail()或.placeholder())和动画GIF有关,使用BitmapTransformation(.circleCrop()将在v4中提供)或.dontAnimate()来解决问题.
使用的最新更新版本compile com.github.bumptech.glide:glide:4.1.1
应使用以下代码
RequestOptions options = new RequestOptions()
.centerCrop()
.placeholder(R.drawable.default_avatar)
.error(R.drawable.default_avatar)
.diskCacheStrategy(DiskCacheStrategy.ALL)
.priority(Priority.HIGH)
.dontAnimate()
.dontTransform();
Glide.with(this)
.load(url)
.apply(options)
.into(imageView);
Run Code Online (Sandbox Code Playgroud)
查看最新版本的滑翔,错误修复,功能
小智 10
如果您想使用GlideApp,您必须添加到dependencies
屏幕截图中的注释处理器
然后在您的应用程序中包含AppGlideModule实现:
@GlideModule
public final class MyAppGlideModule extends AppGlideModule {}
Run Code Online (Sandbox Code Playgroud)
不要忘记@GlideModule
注释.然后你需要Build项目.并且GlideApp
会自动生成.希望这仍然有用.
小智 6
依赖
compile 'com.github.bumptech.glide:glide:4.1.1'
annotationProcessor 'com.github.bumptech.glide:compiler:4.1.1'
Run Code Online (Sandbox Code Playgroud)
添加适当注释的AppGlideModule实现
import com.bumptech.glide.annotation.GlideModule;
import com.bumptech.glide.module.AppGlideModule;
@GlideModule
public final class MyAppGlideModule extends AppGlideModule{}
Run Code Online (Sandbox Code Playgroud)
此外,如果您使用过jack选项,为了避免以下类似错误,您需要使用Android Studio 3.0.0预览.
错误:任务':app:transformJackWithJackForDebug'的执行失败.com.android.jack.ir.JNodeInternalError:java.lang.Exception:java.lang.AssertionError:尚未实现
我们也不需要使用RequestOptions。
生成的API添加了一个GlideApp类,该类提供对RequestBuilder和RequestOptions子类的访问。RequestOptions子类包含RequestOptions中的所有方法以及GlideExtensions中定义的任何方法。RequestBuilder子类提供对生成的RequestOptions子类中所有方法的访问,而不必使用apply:
使用Glide:-
没有生成的API的请求可能如下所示:
Glide.with(fragment)
.load(url)
.apply(centerCropTransform()
.placeholder(R.drawable.placeholder)
.error(R.drawable.error)
.priority(Priority.HIGH))
.into(imageView);
Run Code Online (Sandbox Code Playgroud)
使用GlideApp:-
使用生成的API,RequestOptions
可以内联调用:
GlideApp.with(fragment)
.load(url)
.centerCrop()
.placeholder(R.drawable.placeholder)
.error(R.drawable.error)
.priority(Priority.HIGH)
.into(imageView);
Run Code Online (Sandbox Code Playgroud)
您仍然可以使用生成的RequestOptions子类将相同的选项集应用于多个负载,但是生成的RequestBuilder子类在大多数情况下可能更方便。
归档时间: |
|
查看次数: |
45692 次 |
最近记录: |