如何获得android资产的绝对路径

时间:2016-04-18 18:15:59

标签: java android path libgdx simple-framework

我使用libgdx和simplexml编写Android应用程序来加载关卡。现在我想加载位于android资源文件的level1.xml文件,但我不知道如何获得正确的路径。这是我的代码:

private Level currentLevel;

...
loadLevel(1);
...

private void loadLevel(int level) {
    String path = Gdx.files.internal("level" + level +".xml").path();
    try {
        InputStream source = new FileInputStream(path);
        Serializer serializer = new Persister();
        currentLevel = serializer.read(Level.class, source);
    } catch (Exception e) {
        e.printStackTrace();
    }
}

但我得到的路径只是" level1.xml"。我知道如何用

做到这一点
InputStrem source = getAssets().open("level1.xml");

因为我在我的核心模块中执行此操作,我无法使用android库,我也想在windows / linux / html上使用我的应用程序。 我希望我的问题是可以理解的。谢谢你的帮助!

2 个答案:

答案 0 :(得分:1)

如果是内部(只读,打包应用程序,似乎在您的问题中),您的文件应位于“project / android / assets”,(或“project / core / assets”,如果不是定位android后端)你可以使用Gdx.files.internal()加载它们,所以在这种情况下,它将是

Gdx.files.internal("level1.xml")

它将返回一个FileHandle,您可以使用

直接将内容读取为字符串
Gdx.files.internal("level1.xml").readString();

请记住将桌面项目的工作目录设置为“project / android / assets”

我建议你阅读维基,它解释得非常详细here

答案 1 :(得分:0)

您可以像这样访问资产中的文件     “文件:///android_asset/level1.xml”

相关问题