Android App中使用Glide加载图片的教程

2019-12-10 18:06:24于海丽

(1).using(new MyUrlLoader(this)):使用我们自己的ModeLoader;
(2).load(new MyDataModel()):加载我们自定义的数据源

这里需要解释下getUrl的三个参数:
(1)model:你加载的数据源
(2)width:你加载的图片的宽度(px)
(3)height:你加载的图片的高度(px)

这样,我们在高分率的设备上加载大图的url1,在低分辨率的设备上加载小图url2。从而实现了根据不同手机上的像素值大小加载不同尺寸的图片的需求。

当然如果你不想每次都是用.using(new MyUrlLoader()),就需要实现一个自定义的ModelLoaderFactory并在GlideModule中注册。

public class MyGlideModule implements GlideModule {
  ...
  @Override
  public void registerComponents(Context context, Glide glide) {
    glide.register(MyDataModel.class, InputStream.class, 
      new MyUrlLoader.Factory());
  }
}

同时也要在AndroidManifest.xml声明

<meta-data
  android:name="com.mypackage.MyGlideModule"
  android:value="GlideModule" />

如果你有多个自定义的GlideModule类,那么也要在AndroidManifest.xml中声明多个GlideModule。

在服务端有下面的几个可以加载的url:

URL 图片大小
myserver.com/images/__w-200-400-600-800-1000__/session1.jpg 原始尺寸
myserver.com/images/w200/session1.jpg 200px
myserver.com/images/w400/session1.jpg 400px
myserver.com/images/w600/session1.jpg 600px
myserver.com/images/w800/session1.jpg 800px
myserver.com/images/w1000/session1.jpg 1000px