2012-03-29 10 views
1

Viele mobile Webbrowser haben einige Standardfunktionen für das Halten von Bildern. Zum Beispiel wird dem Benutzer eine Option zum Speichern oder Kopieren oder zum Verschieben angezeigt, wenn er ein Bild in einem Browser hält.Wie man ein Bildhalteereignis in android webview festhält?

Kann die gleiche Funktionalität in Android-App mit einem Webview repliziert werden? Sind einige Standardeinstellungen verfügbar oder muss ich für diese Funktionalität codieren?

+1

Ich denke, es kann möglich mit Kontextmenü. –

+0

@YugandharBabu, Aber wie werde ich das Ereignis erfassen, dass der Benutzer ein Bild in der Webansicht hält? – Kamal

Antwort

3

Ich bin noch nicht in der Lage, eine perfekte Lösung zu finden, aber das könnte den Trick tun.

In onCreate():

registerForContextMenu(mWebView); 

Und überschreiben die onCreateContextMenu() Methode:

@Override 
public void onCreateContextMenu(ContextMenu menu, View v,ContextMenuInfo menuInfo) { 
    super.onCreateContextMenu(menu, v, menuInfo); 

    HitTestResult result = ((WebView) v).getHitTestResult(); 

    MenuItem.OnMenuItemClickListener handler = new MenuItem.OnMenuItemClickListener() { 
     public boolean onMenuItemClick(MenuItem item) { 
      // do the menu action 
      return true; 
     } 
    }; 

    if (result.getType() == HitTestResult.IMAGE_TYPE || 
      result.getType() == HitTestResult.SRC_IMAGE_ANCHOR_TYPE) { 
     // Menu options for an image. 
     //set the header title to the image url 
     menu.setHeaderTitle(result.getExtra()); 
     menu.add(0, 1, 0, "Save Image").setOnMenuItemClickListener(handler); 
     menu.add(0, 2, 0, "View Image").setOnMenuItemClickListener(handler); 
    } 
} 
+0

Hallo, Kamal, Die obige Antwort hat mir sehr geholfen, jetzt bekomme ich Optionen wie Bild speichern und Bild anzeigen, wenn ich ein Bild in webView halte. So wie kann ich jetzt das Bild herunterladen, wenn der Benutzer auf die Schaltfläche "Bild speichern" klickt. Bitte helfen Sie mir in dieser Hinsicht. Danke im Voraus. –

Verwandte Themen