glide:动态使用 Model Loaders
来源:互联网 发布:中科院的飞箭软件 编辑:程序博客网 时间:2024/06/11 08:57
自定义图片大小
提示:如果你没有读之前的文章,确保你看了。否则下面内容会让你困惑。
作个快速回顾:通常Glide请求是从GlideUrl类中生成。上篇文章,我们展示了如何创建一个新的接口,额外将宽度和高度添加到考虑范围:
public interface CustomImageSizeModel { String requestCustomSizeUrl(int width, int height);}
我们创建了它的一个实例,向我们的Future Studio服务器传递了额外尺寸图片的URL。
public static class CustomImageSizeModelFutureStudio implements CustomImageSizeModel { String baseImageUrl; public CustomImageSizeModelFutureStudio(String baseImageUrl) { this.baseImageUrl = baseImageUrl; } @Override public String requestCustomSizeUrl(int width, int height) { return baseImageUrl + "?w=" + width + "&h=" + height; }}
最后,但并非最不重要的,我们必须创造customimagesizeurlloader
,传递高度和宽度到我们model的实现:
public static class CustomImageSizeUrlLoader extends BaseGlideUrlLoader<CustomImageSizeModel> { public CustomImageSizeUrlLoader(Context context) { super( context ); } @Override protected String getUrl(CustomImageSizeModel model, int width, int height) { return model.requestCustomSizeUrl( width, height ); }}
Model Loaders的.using()的动态使用
目前为止,我们上面的代码声明的Glide module。Glide会为每个单独的请求使用它。如果你不希望那样,通过在AndroidManifest.xml
里移除来关闭你的Glide module。我们可以那样做,是因为Glide提供了.using()
方法为一个单独请求去指定一个模型:
String baseImageUrl = "https://futurestud.io/images/example.png"; CustomImageSizeModel customImageRequest = new CustomImageSizeModelFutureStudio( baseImageUrl );Glide .with( context ) .using( new CustomImageSizeUrlLoader( context ) ) .load( customImageRequest ) .into( imageView1 );
正如你上面所见,我们为加载优化尺寸的图片,创建了一个CustomImageSizeModelFutureStudio
对象。由于我们没有在Glide module里声明CustomImageSizeModel
接口,我们必须在上一行用.using(new CustomImageSizeUrlLoader( context ) )
方法指定它。Glide会只为这个请求使用这个模型。其他的所有请求,即使他们也从CustomImageSizeModel实例构建,也不生效。
0 0
- glide:动态使用 Model Loaders
- Glide入门教程——20.动态使用 Model Loaders
- Glide 入门到精通之十九——动态使用 Model Loader
- Loaders 使用
- 使用Loaders
- Loaders
- Loaders
- Loaders
- Loaders
- Loaders
- Loaders
- Loaders 的使用,结合Fragments
- Android关于Loaders的使用
- 使用Loaders异步加载数据
- 【安卓】如何使用Loaders
- Loaders 的使用,结合Fragments
- Loaders 的使用,结合Fragments
- 【Glide】使用
- glide:Glide Module 案例: 接受自签名HTTPS证书
- glide:Glide Module案例: 自定义缓存
- glide:Glide Module 案例: 通过加载自定义大小图片优化
- 一些数论知识(不定期更新)
- 面向对象-final关键字
- glide:动态使用 Model Loaders
- glide:如何旋转图片
- 几本.Net的经典书籍
- video标签在ios微信中的一个问题
- BZOJ3810 [Coci2015]Stanovi
- codeforces 585E. Present for Vitalik the Philatelist (容斥原理)
- BZOJ2067: [Poi2004]SZN 树形DP
- bzoj 2986: Non-Squarefree Numbers (容斥原理)
- qscoj 喵哈哈村的打印机游戏(区间dp)