管理图像层次结构的最佳方法是什么?

问题描述 投票:-1回答:2

我们正在构建一个列出约1000条记录的应用程序(iOS和Android)。该列表显示在表视图/列表视图中,并且在视图中显示与每个记录相关的图像。选择记录后,将打开详细信息视图并显示与该记录相关的多个图像。在两个平台中组织这些图像资产并对其进行访问的最佳(最简单)方法有哪些?

更多信息:每个详细屏幕都有几行文字。这也需要处理。图片应与该应用打包在一起,因为该应用将在离线状态下大量使用。

android ios uitableview listview assets
2个回答
1
投票

对于iOS ::选择后显示的收藏夹视图可能是最简单的。

1000张以上的图片?那是很大的,将使您的商店的ipa膨胀,也使您不得不添加所有图像。您应该真正将它们放在服务器上,并在需要时下载它们,或者在首次加载时下载所有内容。

我要为缩略图显示缩略图或其他内容,然后在选择时将相关图像下载到应用程序捆绑包的目录中。该临时目录可以充当您的源。只需创建一个包装程序即可,该包装程序将读取目录并为找到的每个图像(如果有图像和文本说明,则创建一个ImageObject)创建一个ImageObject,然后编译为Dictionary,其中的键可以标识每个记录。

包装器是编译与记录关联的所有图像时的重要层,因为只要您维护使用字典来组织数据的接口协定,就可以在需要时交换实现。

tableview显示所有记录,并在需要时下载缩略图(这是非常标准的)。选择记录然后转到收集视图,该视图向包装​​器询问记录图像/描述。包装器从系统或服务器获取它们,然后返回字典。然后,收集视图使用字典作为数据源,显示所有带有图像描述的图像

无论如何,我都会根据您含糊的规格来这样做。


0
投票

首先,绝对不建议将它们存储在Core Data中。核心数据性能低下,不能跨平台使用。将图像存储到Core Data中没有任何好处,并且在显示时需要对其进行序列化。

我建议您将记录存储在SQLite数据库中。 SQLite是一个高性能,跨平台的嵌入式数据库,两个平台都完全支持它。

创建一个SQLite 3数据库并存储所有记录,但是图像有两种情况:

  1. 图像非常小,例如按钮的图标,图像的数量较少,那么您可以将它们直接存储在数据库中。
  2. 图像很大,数量很大,那么它应该存储在系统中,仅将图像的名称或路径存储到数据库中。

我建议将图像存储在系统中,因为无法查询和索引斑点数据。当您需要对图像进行某些处理时,这会更加麻烦。从系统中读取将比从数据库中读取更快。

包装前应压缩图像。如果图像较大,则创建相应的缩略图会提高UI的流畅度。

然后,您只需要将数据库和图像(如果未存储在数据库中)复制到您的应用程序。当将来数据发生变化时,您只需要替换应用程序的数据库即可。

© www.soinside.com 2019 - 2024. All rights reserved.