Flutter 照片管理的最佳方式

Best way for Flutter Photo Management

我正在创建一个应用程序,用户可以在其中 select 应用程序中使用的头像的一些照片。一旦 selected,在下次启动时我想自动填充头像。

我在想的解决办法:我会在app目录下保留一份原图,下次用原图做头像。

问题:效率不高,因为存在相同的图像副本。

问题:由于很多应用程序都在做这件事,我想知道最好的方法,更具体地说是在 Flutter 中?

我认为你必须复制原始照片,大多数人使用云服务(google 照片等)来保存照片,不再将照片保存在手机上..

在这方面没有最佳实践。这取决于您的应用。

1) 存储您的头像

占用更多存储空间space。但是你的应用程序运行得更快。

当单个屏幕上显示的头像数量较多,但应用中的头像总数较少时效果最佳。 (例如:你在一个屏幕上显示了15个头像,而你的数据库中有100个头像)。

2) 生成您的头像

减少space。但是您的应用运行速度较慢。

当单个屏幕上显示的头像数量较少,但您的应用中的头像总数很大时最好。 (例如:您在一个屏幕上只显示了 3 个头像,但您的数据库中有 100,000 个头像)。

结论

速度通常比存储更重要space,因此我倾向于存储头像。但获得答案的唯一真正方法是对其进行测试,看看哪种方法最适合您的特定应用。

使用缓存图像小部件在设备中存储图像一段时间或长时间使用 SQLite 数据库。

使用 cached_network_image 插件。

此插件允许您从 Internet 下载图像并将其缓存在应用程序中以供日后使用。您可以提供一个占位符图像,在尚未加载图像(来自网络或内部缓存)时放置在那里,以及在出现错误时显示的内容。如果设备离线 cached_network_image 会自动从缓存中加载图像,它对您的应用程序是透明的,您不必为缓存、存储 space、数据库等任何事情操心。

看看文档。