1

在我正在构建的应用程序中,我使用了多种语言。通过添加新文件夹(例如:values-fr)并在其中添加新的 strings.xml 文件,可以轻松地将不同的语言添加到应用程序中。但是我需要添加相当大的文本文件(完整的文章)。这些文章也用不同的语言编写。将它们添加到我的应用程序的最佳方法是什么?

4

2 回答 2

4

我会考虑使用res/raw-<qualifiers>作为资产的替代品。该raw文件夹可以存储任意文件 - 你猜对了 - 原始形式。例如,用法语和英语编写的“Hello World”文章将存储在:

  • res/raw-fr
  • res/raw-en

然后可以通过调用openRawResource(int id)资源对象来打开原始资源,类似于它对其他资源(如可绘制对象、字符串等)的工作方式。框架生成的 id 将采用熟悉的格式R.raw.filename(没有文件扩展名)。

使用这种方法的好处是您可以充分利用 Android 的本地化系统,这意味着作为开发人员您基本上不必担心任何这些。您还可以轻松添加更多限定符以进一步过滤设备特性(例如屏幕尺寸、密度、平台版本等 -请参阅此处以获取完整概述)。缺点是它在原始文件名/扩展名方面施加了一些限制,并且不支持正确的文件夹/文件层次结构。

“更好”的方法(/raw vs /assets)可能取决于您项目的要求。

于 2013-04-11T09:21:25.807 回答
3

我可能会使用资产——也就是说,创建assets/data/fr/并将fr文件存储在那里。请注意,资产需要显式提取——这可能很好,因为您可以只安装一组文章来节省内存。

另一种可能性是将所有内容放在http服务器上,从而使保存和访问文章成为别人的问题:)。

顺便说一句,如果您的文件真的很大,您将不得不在没有它们的情况下安装应用程序,然后再下载文章。(apk 大小有限制。)

于 2013-04-11T08:10:40.620 回答