我正在创建一个应用程序,用户将在其中为应用程序中使用的头像选择一些照片。选择后,在下次启动时,我想自动填充头像。
我正在考虑的解决方案:我将在应用程序目录中保留原始照片的副本,下次我将使用该照片制作头像。
问题:由于存在相同的图像副本,因此效率不高。
问题:由于许多应用程序都在做这件事,我想知道最好的方法,更具体地说是在 Flutter 中?
我正在创建一个应用程序,用户将在其中为应用程序中使用的头像选择一些照片。选择后,在下次启动时,我想自动填充头像。
我正在考虑的解决方案:我将在应用程序目录中保留原始照片的副本,下次我将使用该照片制作头像。
问题:由于存在相同的图像副本,因此效率不高。
问题:由于许多应用程序都在做这件事,我想知道最好的方法,更具体地说是在 Flutter 中?
使用cached_network_image
插件。
此插件允许您从互联网下载图像并将其缓存在应用程序中以供以后使用。您可以提供一个占位符图像,该图像尚未加载(来自网络或内部缓存),以及在出现错误时显示的内容。如果设备自动离线cached_network_image
,将从缓存中加载图像,它对您的应用程序是透明的,您不必为缓存、存储空间、数据库等任何事情而烦恼。
看看文档。
在这方面没有最佳实践。这取决于您的应用程序。
1)存储你的头像
占用更多存储空间。但是您的应用程序运行得更快。
最好在单个屏幕上显示的头像数量较多,但您的应用中的头像总数较少时。(例如:您在一个屏幕上显示 15 个头像,而您的数据库中有 100 个头像)。
2) 生成你的头像
占用更少的空间。但是您的应用程序运行速度较慢。
最好在单个屏幕上显示的头像数量较少,但您的应用中的头像总数很大时。(例如:您只在一个屏幕上显示 3 个头像,但您的数据库中有 100.000 个头像)。
结论
速度通常比存储空间更重要,因此我倾向于存储头像。但获得答案的唯一真正方法是对其进行测试,看看哪种方法最适合您的特定应用程序。
我认为您必须复制原始照片,大多数人使用云服务(谷歌照片等)来保存照片,不再将照片保存在手机上..
使用缓存图像小部件将图像存储一段时间或在设备中长时间使用 SQLite 数据库。