glide 活动缓存 内存缓存的作用
时间: 2023-10-23 11:14:55 浏览: 60
Glide是一款流行的Android图片加载框架,它提供了内存缓存和活动缓存两种缓存方式。其中,内存缓存是为了避免频繁的I/O操作而设计的,因为内存读取的速度比磁盘要快得多。而活动缓存则是为了在活动销毁时能够快速地重新加载图片而设计的。这两种缓存方式可以协同工作,使得Glide加载图片的速度更快,同时减少了对网络和磁盘的依赖。
相关问题
glide内存缓存如何控制大小
Glide内存缓存的大小可以通过设置MemorySizeCalculator来控制。MemorySizeCalculator会计算出可用的内存大小,然后根据指定的内存缓存比例来计算出Glide内存缓存的大小。
具体实现方法如下:
1. 创建一个MemorySizeCalculator对象,设置内存缓存比例和Bitmap格式。
```
MemorySizeCalculator calculator = new MemorySizeCalculator.Builder(context)
.setMemoryCacheScreens(2) // 设置可用内存屏幕数
.setBitmapPoolScreens(3) // 设置位图池可用内存屏幕数
.setMemoryCacheSizePercentage(20) // 设置内存缓存比例
.build();
```
2. 将MemorySizeCalculator对象传递给GlideBuilder,并设置内存缓存。
```
GlideBuilder builder = new GlideBuilder(context)
.setMemorySizeCalculator(calculator)
.setMemoryCache(new LruResourceCache(cacheSize)); // 设置内存缓存大小
```
其中,cacheSize为计算出的Glide内存缓存大小。
通过这种方式,我们可以控制Glide内存缓存的大小,避免内存溢出的问题。
glide设置缓存数量
在 Glide 中,可以使用 `MemorySizeCalculator` 类来计算缓存大小并设置缓存数量。以下是一个示例代码:
```java
// 创建一个 MemorySizeCalculator.Builder 对象
MemorySizeCalculator.Builder builder = new MemorySizeCalculator.Builder(context);
// 设置 Glide 内存缓存大小为内存总大小的 1/8
MemorySizeCalculator calculator = builder.setMemoryCacheScreens(1)
.setBitmapPoolScreens(3)
.setTargetDensity(context.getResources().getDisplayMetrics().densityDpi)
.build();
// 获取 Glide 内存缓存大小
int memoryCacheSize = calculator.getMemoryCacheSize();
// 设置 Glide 内存缓存大小为内存总大小的 1/8
MemoryCache memoryCache = new LruResourceCache(memoryCacheSize);
GlideBuilder glideBuilder = new GlideBuilder();
glideBuilder.setMemoryCache(memoryCache);
// 设置 Glide BitmapPool 缓存大小为内存总大小的 1/6
int bitmapPoolSize = calculator.getBitmapPoolSize();
BitmapPool bitmapPool = new LruBitmapPool(bitmapPoolSize);
glideBuilder.setBitmapPool(bitmapPool);
// 构建 Glide
Glide.setup(glideBuilder);
```
在上面的代码中,`setMemoryCacheScreens()` 和 `setBitmapPoolScreens()` 方法用于设置屏幕数量,`setTargetDensity()` 方法用于设置目标密度,`getMemoryCacheSize()` 和 `getBitmapPoolSize()` 方法用于获取缓存大小。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)