我知道资源本身是在XML文件中定义的,但如果我有一个自己的类型的XML文件想要使用,我应该将它们存储在“res / xml”中吗?
是否有更好的方法,例如使用资产,然后将它们作为二进制文件加载,再由另一个XML库解析?
res
文件夹内。这是我采用的一种惯例,为了方便组织,我将所有文件放在同一个目录下。res/xml
中,它可以在运行时通过Resources.getXML()
随时访问。首先要正确了解如何在Android中访问文件:
您可能需要访问原始文件和目录。如果是这样,那么将文件保存在res/
中对您来说行不通,因为从res/读取资源的唯一方法是使用资源ID
。相反,您可以将资源保存在assets/目录中。
保存在assets/目录中的文件没有资源ID,因此您无法通过R类或XML资源引用它们。相反,您可以像普通文件系统一样查询assets/目录中的文件,并使用AssetManager读取原始数据。
但是,如果您只需要读取原始数据(例如视频或音频文件),则将文件保存在res/raw/目录中,并使用openRawResource()读取字节流即可。
访问XML文件
http://developer.android.com/guide/topics/resources/accessing-resources.html#ResourcesFromXml
res/xml/
Arbitrary XML files that can be read at runtime by calling Resources.getXML()
Resources res = activity.getResources();
XmlResourceParser xrp = res.getXml(R.xml.the_file_name_aka_resource_ID);
XmlResourceParser
。 - Anthony Forloney