XML(SVG) in Webview

Dieses Thema im Forum "Android App Entwicklung" wurde erstellt von gweir, 08.05.2012.

  1. gweir, 08.05.2012 #1
    gweir

    gweir Threadstarter Neuer Benutzer

    Beiträge:
    3
    Erhaltene Danke:
    0
    Registriert seit:
    08.05.2012
    Hallo,

    ich möchte ein SVG welches ja nichts anders als eine XML Datei ist darstellen. Da die WebView für mich das Zoomen übernimmt nehme ich diese. Das funktioniert auch soweit.

    Mein XML enthält nun intern jedoch links auf Bilder die neben der Datei liegen.
    Diese Bilder werden in der WebView korrekt dargestellt wenn ich folgenden Aufruf nutze.

    Code:
    mWebView.loadUrl(uri.toString());
    
    lade ich die Daten jedoch wie folgt. Wird das SVG weiterhin angezeigt die zusätzlichen Bilder jedoch nicht. Weiß jemand woran das liegen kann? Mache ich einen Fehler beim erstellen des XML Dokuments?

    Ich wäre für Hinweise oder Ideen dankbar.

    Code:
    mWebView.loadData(xmlReader.getmXmlContent(), "text/xml", "UTF-8");
    Der XML Konten wird so erstellt

    Code:
    try {
    		this.mUrl = new URL(mUri.toString());
    			
    		//get DOM from XML File
    		DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
    		DocumentBuilder db = dbf.newDocumentBuilder();
    		Document doc = db.parse(new InputSource(mUrl.openStream()));
    		doc.getDocumentElement().normalize();
    		//get IMG Links
    		NodeList nl = doc.getElementsByTagName("image");
    			
    		//get Content from XMLDoc
    		TransformerFactory tf = TransformerFactory.newInstance();
    		Transformer t = tf.newTransformer();
    		t.setOutputProperty(OutputKeys.INDENT, "yes");
    		StringWriter sw = new StringWriter();
    		t.transform(new DOMSource(doc), new StreamResult(sw));
    		mXmlContent = sw.toString();
    		mDoc = doc;
    			
    
    		} catch (Exception e) {
    			e.printStackTrace();
    		}
    
     
  2. swordi, 08.05.2012 #2
    swordi

    swordi Gewerbliches Mitglied

    Beiträge:
    3,389
    Erhaltene Danke:
    441
    Registriert seit:
    09.05.2009
  3. gweir, 08.05.2012 #3
    gweir

    gweir Threadstarter Neuer Benutzer

    Beiträge:
    3
    Erhaltene Danke:
    0
    Registriert seit:
    08.05.2012
    Stimmt Android ansich unterstützt SVG nicht. Der WebView ist das allerdings egal da sie scheinbar auch XML interpretieren kann.

    Wie gesagt der Aufruf mit loadUrl(DateiPfad); führt dazu, dass das XML (SVG) korrekt dargestellt wird.
     
  4. Thyrion, 08.05.2012 #4
    Thyrion

    Thyrion Ehrenmitglied

    Beiträge:
    11,845
    Erhaltene Danke:
    2,450
    Registriert seit:
    21.07.2009
    Phone:
    Nexus 5X
    Sind die Pfadangaben zu den eingebetteten Bildern relative Pfade oder absolute Pfade?

    EDIT:
    Code:
    A) mWebView.loadUrl(uri.toString());
    B) mWebView.loadData(xmlReader.getmXmlContent(), "text/xml", "UTF-8");
    A) Hier ist der Basis-Pfad ja bekannt.
    B) Hier nicht.
     
  5. gweir, 08.05.2012 #5
    gweir

    gweir Threadstarter Neuer Benutzer

    Beiträge:
    3
    Erhaltene Danke:
    0
    Registriert seit:
    08.05.2012
    Hallo Thyrion,

    ich bin mir nicht sicher ob ich dich richtig verstanden habe. Der Pfad zu dem Bild ist in der XML definiert.

    Das Verhalten welches ich beobachten konnte ist gleich egal ob ich den Pfad relativ setzte oder absolut wie unten.

    Code:
    <image x="1480" y="4770" width="400" height="141" xlink:href="file:///sdcard/InventoryListCreator/img0.jpg" />
    
     

Diese Seite empfehlen