Glide的使用

Glide的使用

简单使用

  1. 引入
dependencies {  
    compile 'com.github.bumptech.glide:glide:3.5.2'  
    compile 'com.android.support:support-v4:22.0.0'  
}
  1. 使用
Glide.with(MainActivity.this)
                .load("https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1488304980120&di=691744515390177625e5708270f84654&imgtype=0&src=http%3A%2F%2Fpic.58pic.com%2F58pic%2F17%2F16%2F41%2F06G58PICfVz_1024.jpg")
                .into(imageView);

2.1 Glide的with()

可以接收的参数:

  • Context context;
  • Activity activity;
  • FragmentActivity fragmentActivity;
  • Fragment fragment;

2.2 load()是加载目标资源

可以接收的参数类型:

  • Uri uri;
  • String uriString;
  • File file;
  • Integer resourceId;
  • byte[] model;
  • String model;

2.3 into()就是加载资源完成后作什么处理,三种方式处理

1)into(ImageView imageView);//显示在控件上

2)into(Target target);//通过回调获得加载结果

Glide.with(MainActivity.this)
                .load("https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1488304980120&di=691744515390177625e5708270f84654&imgtype=0&src=http%3A%2F%2Fpic.58pic.com%2F58pic%2F17%2F16%2F41%2F06G58PICfVz_1024.jpg")
                .into(new SimpleTarget<GlideDrawable>() {
                    @Override
                    public void onResourceReady(GlideDrawable resource, GlideAnimation<? super GlideDrawable> glideAnimation) {
                        
                    }
                });

3)into(int w, int h);//指定期望的图片大小,返回一个future对象,要在子线程中获取

new Thread(new Runnable() {
        @Override
        public void run() {
            Bitmap bitmap = Glide.with(context)  
                .load("xxxx.png")  
                .into(200200)
                .get();
        }
    }).start();

区别

第一种是直接把图片加载出来显示在ImageView上,你并不会得到中间结果,也就是bitmap对象。
第二种、第三种都是可以获取到bitmap的,获取到后怎么处理自己决定。
第三种需要在子线程中调用

一些属性

  1. 设置图片大小 .override(int w, int h);

  2. 占位和错误显示 .placeHolder(int resourceId);
    .error(int resourceId);
    加载时和加载过程中显示的图片,这个图片通常就是本地的一张资源图片

  3. 缓存策略 .diskCacheStrategy(DiskCacheStrategy.ALL)
    这个是设置缓存策略。
    DiskCacheStrategy.NONE:不缓存
    DiskCacheStrategy.SOURCE:缓存原始图片
    DiskCacheStrategy.RESULT:缓存压缩过的结果图片
    DiskCacheStrategy.ALL:两个都缓存

  4. 加载gif动态图 .asBitmap() .asGif()
    只需要加一行代码,Glide就可以直接在ImageView上加载gif动态图,这个还是很方便的

关键就是asGif()这行代码,它就会自动加载成gif动态图,如果改成asBitmap(),就是静态图

Glide.with(context)
    .load("xxx.gif")
    .asGif()
    .into(imageView);
  1. 跳过内存缓存 .skipMemoryCache(true)
posted @ 2017-03-01 00:01  tuionf  阅读(165)  评论(0)    收藏  举报