1

好的,到目前为止,我发现的所有答案似乎都是由不知道答案的人回答的……这应该是一个简单的答案(免费代表为你):

我在 res/raw/ 中有一个名为 overworld_a.tmx 的文件

我需要使用路径作为字符串加载它,然后将文件名添加到字符串中,因为它会有所不同。

像这样:

    String mapName = "overworld_a.tmx";
    try {
        TMXMapReader mapReader = new TMXMapReader();
        map = mapReader.readMap("raw/"+mapName);
    } catch (Exception e) {
        System.out.println("Error while reading the map:\n" + e.getMessage());
        return;
    }

问题是,这显然行不通......简单的问题是,该文件的相对路径是什么?

如果这是不可能的:

复杂的问题是,如何从 res 文件夹及其子文件夹中打开不同的文件?

4

1 回答 1

1

您可以overworld_a.tmxres/rawdir 读取为:

1.用于从原始文件夹openRawResource读取overworld_a.tmxInputStream

String mapName = "overworld_a"; //<< just pass name without file extension 

resID = getResources().getIdentifier(mapName, "raw", getPackageName());
InputStream inputStream = getResources().openRawResource(resID);

2.ByteArrayOutputStreaminputStream:_

ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
//... your code for reading byteArray from inputStream

3.传递byteArrayOutputStreammapReader.readMap

 TMXMapReader mapReader = new TMXMapReader();
 map = mapReader.readMap(byteArrayOutputStream);
//.....
于 2013-03-22T06:02:51.380 回答