我们正在构建一个列出约1000条记录的应用程序(iOS和Android)。该列表显示在表视图/列表视图中,并且在视图中显示与每个记录相关的图像。选择记录后,将打开详细信息视图并显示与该记录相关的多个图像。 在这两个平台中组织这些图像资产并对其进行访问的最佳(最简单)方法有哪些?
更多信息: 每个详细屏幕都有几行文字。这也需要处理。 图片应与该应用打包在一起,因为该应用将在离线状态下大量使用。
答案 0 :(得分:1)
对于iOS :: 选择后显示的收藏夹视图可能是最简单的。
1000张以上的图片?那是很大的,将使您的商店的ipa膨胀,也使您不得不添加所有图像。您应该真正将它们放在服务器上,并在需要时下载它们,或者在首次加载时下载所有内容。
我要为桌面视图添加缩略图或其他内容,然后在选择时将相关图像下载到应用程序捆绑包中的目录中。该临时目录可以充当您的源。只需创建一个包装程序即可,该包装程序将读取目录并为找到的每个图像(如果有图像和文本说明,则创建一个ImageObject)创建一个ImageObject,然后编译为Dictionary,并且键可以标识每个记录。
在编译与记录相关的所有图像时,包装器是重要的一层,因为只要您维护使用字典来组织数据的接口协定,就可以在需要时交换实现。
tableview显示所有记录,并在需要时下载缩略图(这是非常标准的)。选择记录然后转到收集视图,该视图向包装器询问记录图像/描述。包装器从系统或服务器获取它们,然后返回字典。然后集合视图使用字典作为数据源,显示所有带有图像描述的图像
无论如何,我都会根据您含糊的规格来这样做。
答案 1 :(得分:1)
首先,绝对不建议将它们存储在Core Data中。核心数据性能低下,不能跨平台使用。将图像存储到Core Data中没有任何好处,显示时需要对其进行序列化。
我建议您将记录存储在SQLite数据库中。 SQLite是一个高性能,跨平台的嵌入式数据库,两个平台都完全支持。
创建一个SQLite 3数据库并存储所有记录,但是该图像有两种情况:
我建议将图像存储在系统中,因为无法查询和索引斑点数据。当您需要对图像进行某些处理时,这会更加麻烦。从系统中读取将比从数据库中读取更快。
包装前应压缩图像。如果图像较大,则创建相应的缩略图将提高UI流畅度。
然后,您只需要将数据库和图像(如果未存储在数据库中)复制到您的应用程序。当将来数据发生变化时,您只需要为应用替换数据库即可。