2016-04-18 3 views
2

Ich programmiere eine App für Android mit libgdx und simplexml, um die Ebenen zu laden. Jetzt möchte ich die level1.xml-Datei laden, die sich in der Android-Assets-Datei befindet, aber ich weiß nicht, wie ich den richtigen Pfad dazu finde. Das ist mein Code:Wie bekomme ich den absoluten Pfad zu android Assets

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(); 
    } 
} 

Aber der Pfad, den ich bekomme, ist nur "level1.xml". Ich weiß, wie dies zu tun mit

InputStrem source = getAssets().open("level1.xml"); 

Weil ich das tue in meinem Kern-Modul ich nicht die Android-Bibliotheken verwenden können, und ich möchte, dass meine App auf Windows/Linux/html verwenden. Ich hoffe meine Frage ist verständlich. Danke für Ihre Hilfe!

Antwort

1

Im Falle von internen (nur lesen, verpackt mit der App, wie es in Ihrer Frage scheint) sollten Ihre Dateien bei "Projekt/Android/Assets" (oder "Projekt/Kern/Assets", wenn nicht Targeting android Backend) und Sie können sie mit Gdx.files.internal(), so dass in diesem Fall laden, wäre es

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

es wird wieder ein Filehandle sein, können Sie den Inhalt als String direkt

mit lesen

Denken Sie daran, das Arbeitsverzeichnis Ihres Desktop-Projekts auf "project/android/assets" zu setzen

Ich empfehle Ihnen das Wiki zu lesen, erklärt es es sehr detaillierte here

0

Sie können in Assets Datei zugreifen wie diese "file: ///android_asset/level1.xml"