android glide的框架使用

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了android glide的框架使用相关的知识,希望对你有一定的参考价值。

android中,可能需要用来从网上获取图片的需求,那么这个功能用第三方框架是最好的,因为第三方框架为我们封装了很多的操作,比如glide框架,可以异步的加载图片,并且可以设置缓存方式和缩略图等一系列功能,下边就介绍下怎么使用。

首先添加gradle:

compile ‘com.github.bumptech.glide:glide:3.7.0‘

添加对应的权限,访问网络和访问本地存储:

    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

最简单的使用的方法:

Glide
    .with(this)
    .load("http://inthecheesefactory.com/uploads/source/nestedfragment/fragments.png")
    .into(imageView);

glide with的介绍:

  1. with(Context context). 使用Application上下文,Glide请求将不受Activity/Fragment生命周期控制。
  2. with(Activity activity).使用Activity作为上下文,Glide的请求会受到Activity生命周期控制。
  3. with(FragmentActivity activity).Glide的请求会受到FragmentActivity生命周期控制。
  4. with(android.app.Fragment fragment).Glide的请求会受到Fragment 生命周期控制。
  5. with(android.support.v4.app.Fragment fragment).Glide的请求会受到Fragment生命周期控制。

设置占位图和动画

在图片过大或者网上太慢时,可以设置为图像设置一个占位图,在图像加载出来之前先显示占位图设置占位图的方式
还可以设置在图像加载失败时显示的图像

Glide.with(this).load("http://ww4.sinaimg.cn/large/610dc034gw1f96kp6faayj20u00jywg9.jpg")
        .placeholder(R.drawable.ic_launcher) //设置占位图,在加载之前显示
        .error(R.drawable.icon) //在图像加载失败时显示
        .into(image);

在加载图像时,还可以设置图像显示的动画:

Glide.with(this).load("http://ww4.sinaimg.cn/large/610dc034gw1f96kp6faayj20u00jywg9.jpg")
        .placeholder(R.drawable.ic_launcher)
        .error(R.drawable.icon)
        .crossFade() //设置显示动画,
        .into(image);
crossFade()有几种重载的方法
crossFade(int duration):设置时间
crossFade(Animation animation, int duration):设置自定义的动画和时间
crossFade(int animationId, int duration): 加载动画资源和时间
 
缩略图
glide也可以设置缩略图,即先加载缩略图,然后再加载原图:
Glide  
    .with( context )
    .load( UsageExampleGifAndVideos.gifUrl )
    .thumbnail( 0.1f )
    .into( imageView2 );
缓存

我们都知道图像的处理和显示在Android中是最耗费内存的,很容易引起OOM的问题,一般在图像处理和显示时,都会使用缓存策略,内存缓存或硬盘缓存,在Glide中也提供了不同的缓存策略,默认的情况下会将显示的图像进行内存缓存,也可以设置不使用内存缓存,调用方法skipMemoryCache(true),就告诉Glide我们不打算使用内存缓存,默认是使用内存缓存的

Glide.with(this)
        .load("http://ww4.sinaimg.cn/large/610dc034gw1f96kp6faayj20u00jywg9.jpg")
        .skipMemoryCache(true)
        .into(image);

Glide同时也提供了硬盘缓存,硬盘缓存的策略可以通过方法diskCacheStrategy()来设定

Glide.with(this)
        .load("http://ww4.sinaimg.cn/large/610dc034gw1f96kp6faayj20u00jywg9.jpg")
        .diskCacheStrategy(DiskCacheStrategy.SOURCE) //不使用硬盘缓存
        .into(image);
硬盘缓存策略
DiskCacheStrategy.NONE: 不使用硬盘缓存
DiskCacheStrategy.SOURCE: 将原始图像缓存在硬盘中
DiskCacheStrategy.RESULT: 将显示出来大小的图像缓存在硬盘(默认缓存策略)
DiskCacheStrategy.ALL: 显示的图像和原始图像都会缓存

 









以上是关于android glide的框架使用的主要内容,如果未能解决你的问题,请参考以下文章

android glide的框架使用

Android Studio 第六十七期 - Android Glide3.7.0和3.8.0用法

安卓 Glide图形加载框架

Android之第三方框架使用汇总

聊聊Android优秀的图片加载缓存的开源框架?UILGlidePicasso

android Glide图片加载框架的初探