zoukankan      html  css  js  c++  java
  • glide使用

    glide在github地址:https://github.com/bumptech/glide

    1.添加依赖(最好看官网,因为有时候添加依赖的会有轻微改动,版本也会一直更新)

    repositories {
      mavenCentral()
      google()
    }
    
    dependencies {
      implementation 'com.github.bumptech.glide:glide:4.7.0'
      annotationProcessor 'com.github.bumptech.glide:compiler:4.7.0'
    }

    2.简单使用

      String url = "http://cn.bing.com/az/hprichbg/rb/Dongdaemun_ZH-CN10736487148_1920x1080.jpg";
            Glide.with(this).load(url).into(imageView);

    调用Glide.with()方法用于创建一个加载图片的实例。with()方法可以接收Context、Activity或者Fragment类型的参数。也就是说我们选择的范围非常广,不管是在Activity还是Fragment中调用with()方法,都可以直接传this。那如果调用的地方既不在Activity中也不在Fragment中呢?也没关系,我们可以获取当前应用程序的ApplicationContext,传入到with()方法当中。注意with()方法中传入的实例会决定Glide加载图片的生命周期,如果传入的是Activity或者Fragment的实例,那么当这个Activity或Fragment被销毁的时候,图片加载也会停止。如果传入的是ApplicationContext,那么只有当应用程序被杀掉的时候,图片加载才会停止。

    接下来看一下load()方法,以下是加载不同类型的资源时的代码示例

    // 加载本地图片
    File file = new File(getExternalCacheDir() + "/image.jpg");
    Glide.with(this).load(file).into(imageView);
    
    // 加载应用资源
    int resource = R.drawable.image;
    Glide.with(this).load(resource).into(imageView);
    
    // 加载二进制流
    byte[] image = getImageBytes();
    Glide.with(this).load(image).into(imageView);
    
    // 加载Uri对象
    Uri imageUri = getImageUri();
    Glide.with(this).load(imageUri).into(imageView);

    占位图

    占位图是用来在未加载完成时预先展示的图片,另外还给出了加载错误时展示其他图片,以及如何禁止使用缓存等

    Glide.with(this)
    .load(url)
    .placeholder(R.drawable.loading) //占位图
    .error(R.drawable.error) //加载错误时显示的图片
    .diskCacheStrategy(DiskCacheStrategy.NONE) //禁止使用缓存
    .into(imageView);

    指定图片格式(静态图片还是动态图片GIF)

    glide可以自动识别要加载的资源时静态还是动态图片,但是也可以硬性指定,而且动态可以指定成静态,静态指定成动态就会报错。

    Glide.with(this)
         .load(url)
         .asGif()   //动态   //.asBitmap()静态
         .placeholder(R.drawable.loading)
         .error(R.drawable.error)
         .diskCacheStrategy(DiskCacheStrategy.NONE)
         .into(imageView);

    glide自动判断imageview大小,避免内存浪费,同时还可以指定图片的大小

    使用Glide,我们就完全不用担心图片内存浪费,甚至是内存溢出的问题。因为Glide从来都不会直接将图片的完整尺寸全部加载到内存中,而是用多少加载多少。Glide会自动判断ImageView的大小,然后只将这么大的图片像素加载到内存当中,帮助我们节省内存开支。

    Glide.with(this)
         .load(url)
         .placeholder(R.drawable.loading)
         .error(R.drawable.error)
         .diskCacheStrategy(DiskCacheStrategy.NONE)
         .override(100, 100)//指定图片的大小,不管你控件多大,图片就是这么大
         .into(imageView);
  • 相关阅读:
    Oracle DBA 数据库结构试题2
    Oracle DBA启动和关闭例程试题
    Oracle 命令大汇总备份与恢复
    数据库管理应注意的问题
    Using ICSharpCode.SharpZipLib for zip file
    SQL 2005 新功能
    ASP.net的RUL重写
    datalist 的 Datasource怎样绑定 泛型 List
    文件压缩/解压缩开源项目SharpZipLib在C#中的使用
    asp.net页面间传值的9种方式
  • 原文地址:https://www.cnblogs.com/laoyimou/p/8818914.html
Copyright © 2011-2022 走看看