📜  flutter cachImage (1)

📅  最后修改于: 2023-12-03 15:15:07.175000             🧑  作者: Mango

Flutter CacheImage介绍

在我们的移动应用中,图片是很常见的一种元素。但是,网络图片的加载速度通常比较慢,容易影响用户体验。因此,使用缓存来提高图片加载速度也很重要。

Flutter提供了一个缓存图片的类 CacheImage,可以通过它来快速加载图片并且避免重复网络请求。

如何使用

导入包

在使用 CacheImage 之前,需要在你的Flutter项目中导入以下包:

import 'package:flutter/foundation.dart';
import 'package:flutter/material.dart';

使用CacheImage

  1. 定义一个 CacheImageProvider

    final _cacheImageProvider = CachedNetworkImageProvider(
      imageUrl,
      errorListener: () => print('加载图片失败!');
    );
    

    我们需要为图片提供一个URL参数,同时可以选择添加一个错误监听器,打印错误信息。

  2. 使用 Image 组件来加载 CacheImageProvider

    Image(
      image: _cacheImageProvider,
      fit: BoxFit.cover,
    ),
    

    我们可以通过 Image 组件将 CacheImageProvider 加载到应用中。同时你也可以根据你的实际需求设置图片的裁剪、填充方式。

缓存策略

CacheImage 中,默认是使用LRU策略来存储图片。我们可以通过 CacheImage 的构造函数来设置缓存的时间和数量。

比如:

 cacheImageProvider = new CacheImageProvider(
   url,
   cacheKey: cacheKey,
   imageCache: imgCache,
   maxAge: const Duration(hours: 1),
   header: headers?.addAuthHeader(apiKey),
 );

以上代码表示了该图片的缓存时间为1小时,当缓存的图片超过最大数量时,将会按照LRU策略来删除旧的图片。

总结

通过上述介绍,我们了解到了 CacheImage 这个强大的缓存图片类,它可以帮助我们快速地加载图片,并提高用户体验。同时,通过设置不同的缓存策略,可以更好地满足不同需求。