我使用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上使用我的应用程序。 我希望我的问题是可以理解的。谢谢你的帮助!
答案 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”