zoukankan      html  css  js  c++  java
  • Glide库的使用

    在学习Glide 的过程中,有些值得注意的地方,在此记录一下

    1. 在使用Glide加载网络图片时,注意加上网络权限:

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

    2. 从Android9开始,默认禁止明文传输;  若请求http,注意在Manifest中配置上允许明文传输   

    android:usesCleartextTraffic="true"
    还有另外一种方法,就是在 Res目录下新建xml文件夹,并在内部新建一个xml的配置文件,文件名自定义
    1 <?xml version="1.0" encoding="utf-8"?>
    2 <network-security-config>
    3     <base-config cleartextTrafficPermitted="true" />
    4 </network-security-config>
    
    
    之后在Manifest中配置上安全配置
    android:networkSecurityConfig="@xml/netsecurity"

    3. ** 如果上述二项配置好以后,仍不能加载图片,请一定要卸载APP,再重新安装 **

    ======================================================================

    基于上述原因和对Glide的使用需求,在这次随笔中,记录下Glide的相关使用规则

    原文: https://blog.csdn.net/yulyu/article/details/55096713

    1. Glide的缓存资源    

    • 1.原图(SOURCE) :原始图片
    • 2.处理图(RESULT) :经过压缩和变形等处理后的图片

    2. Glide的缓存策略

         a. 内存缓存策略 :    skipMemoryCache( Boolean )   

             Glide默认在内存中缓存处理图(Result);通过 skipMemoryCache 来设置是否要跳过内存缓存 

             True: 跳过内存缓存;不在内存中缓存结果图;

             False:不跳过内存缓存;

             调用skipMemoryCache(false)没有代码上的意义,因为Glide默认就是不跳过内存缓存的,

             但是显示调用这个方法,可以让别人一目了然的知道你这次请求是会在内存中缓存的,所以还是建议显示调用一下这个方法来表明你的内存缓存策略

         b.磁盘缓存策略(diskCacheStrategy)

           Glide磁盘缓存策略分为四种,默认的是RESULT(默认值这一点网上很多文章都写错了,但是这一点很重要):

               1.ALL:缓存原图(SOURCE)和处理图(RESULT)

               2.NONE:什么都不缓存

               3.SOURCE:只缓存原图(SOURCE)

               4.RESULT:只缓存处理图(RESULT) —默认值

         c. 组合策略

             和其它的三缓缓存一样,Glide的缓存读取顺序是: 内存-->磁盘-->网络

             需要注意的是Glide的内存缓存和磁盘缓存的配置相互没有直接影响,所以可以同时进行配置

             就是内存缓存与磁盘缓存相互间没啥关系,各玩各的

    3.缓存大小及路径
       3.1内存缓存最大空间
            Glide的内存缓存其实涉及到比较多的计算,这里就介绍最重要的一个参数,就是内存缓存最大空间

            内存缓存最大空间(maxSize)=每个进程可用的最大内存 * 0.4

            (低配手机的话是: 每个进程可用的最大内存 * 0.33)

       3.2磁盘缓存大小
            磁盘缓存大小: 250 * 1024 * 1024(250MB)

            /** 250 MB of cache. */

             int DEFAULT_DISK_CACHE_SIZE = 250 * 1024 * 1024;

       3.3磁盘缓存目录

            磁盘缓存目录: 项目/cache/image_manager_disk_cache

            String DEFAULT_DISK_CACHE_DIR = "image_manager_disk_cache";

    4.清除缓存

        4.1清除所有缓存
             清除所有内存缓存(需要在Ui线程操作)

             Glide.get(this).clearMemory(); 

             清除所有磁盘缓存(需要在子线程操作)

             Glide.get(MainActivity.this).clearDiskCache(); 
             注:在使用中的资源不会被清除

      4.2清除单个缓存
          由于Glide可能会缓存一张图片的多个分辨率的图片,并且文件名是被哈希过的,所以并不能很好的删除单个资源的缓存,以下是官方文档中的描述  

          

       

  • 相关阅读:
    结对编程1-基于GUI的四则运算生成器
    个人作业1——四则运算题目生成程序(基于控制台)
    软件工程的实践项目课程的自我目标
    个人作业3——个人总结(Alpha阶段)
    结对编程2——单元测试
    个人作业(2)---英语学习APP案例分析
    结对作业1----基于GUI的四则运算生成器
    个人作业1——四则运算题目生成程序(基于控制台)
    个人作业3——个人总结(Alpha阶段)
    结对编程2——单元测试
  • 原文地址:https://www.cnblogs.com/jieling/p/15188300.html
Copyright © 2011-2022 走看看