2013-05-24 5 views
5

Ich möchte meine Android-Anwendung Text Hervorhebung innerhalb einer WebView haben. Ähnlich wie die Funktionalität in Google Play Book. Hat jemand eine Idee, wie man das erreicht?Markieren Sie Text-Funktion wie Google Play-Buch

Ich verwende eine WebView, weil mein Inhalt in HTML-Form ist.

sprechen im Grunde diesen Effekt:

enter image description here

+0

yaa. Ich habe über dieses gesprochen. So ny Hilfe –

+0

Sie wollen Text markieren während der Auswahl oder wann? – deadfish

+0

während der Auswahl. Ich benutze jetzt Webansicht, weil mein Inhalt in HTML-Form ist. aber kann dies nicht auf der Web-Ansicht erreichen. jede andere Option –

Antwort

0

Die blaue Auswahl Sie Teil der Standard-Android-Umgebung zu sehen ist, wenn Text ausgewählt wird. Das sollte auf Ihrem Standard-Webview funktionieren, ohne dass ein benutzerdefinierter Code benötigt wird. => Ich bin nicht mehr davon überzeugt, dass das wahr ist. Sieht so aus als wäre es nicht.

Die grüne (gelb, orange, rot, ...) Auswahl ist jedoch benutzerdefiniert.

Sie könnten den ausgewählten Text aus Ihrem Auswahlereignis auslesen und diese Informationen verwenden, um den HTML-Inhalt zu aktualisieren, den Text in einen Bereich mit einer Hintergrundfarbpalette zu verpacken.

Alternative Methode ist die Verwendung von Javascript und Aktivieren von Javascript in Ihrem Webview. Nicht sicher, aber wie man das macht.

Einige Quellen für diesen Ansatz zu überprüfen sind https://github.com/btate/BTAndroidWebViewSelection und Android: How to select text from WebView, and highlight it onclick

Textauswahl von WebView Details auf einem WebView Arbeits

Um die Textauswahl erhalten Sie folgenden Code-Schnipsel verwenden können (from this question). Lösen Sie dies bei einem Klick auf die Schaltfläche (oder einem anderen Ereignis) aus Ihrem (Kontext-) Menü aus.

private void emulateShiftHeld(WebView view) 
    { 
     try 
     { 
      KeyEvent shiftPressEvent = new KeyEvent(0, 0, KeyEvent.ACTION_DOWN, 
                KeyEvent.KEYCODE_SHIFT_LEFT, 0, 0); 
      shiftPressEvent.dispatch(view); 
      Toast.makeText(this, "select_text_now", Toast.LENGTH_SHORT).show(); 
     } 
     catch (Exception e) 
     { 
      Log.e("dd", "Exception in emulateShiftHeld()", e); 
     } 
    } 
+0

können Sie genauer auf Auswahlereignis –

+0

Ich habe die Frage mit etwas mehr Details aktualisiert. Anscheinend ist es nicht so default wie ich dachte. Sieht so aus, als ob selbst die Auswahl einen benutzerdefinierten Code benötigt. Beispiel hinzugefügt zu meiner ursprünglichen Antwort. – hcpl

0

ab API-Ebene 11, können Sie TextView's textIsSelectable flag verwenden.


Edit: Auch wenn die Frage ist nun bearbeitet wurde speziell WebView, OP @ Suhail Kommentar „mein Inhalt ist in HTML-Form“ zu erwähnen, nicht vollständig disqualifizieren TextView wie es auch einige grundlegende HTML machen kann.

+0

Wie siehst du das in diesem Anwendungsfall mit dem Webview? – hcpl

+0

@hcpl Frage gibt keinen Kontext, z. 'WebView' oder' TextView' – laalto

+0

tatsächlich, ich werde eine Korrektur dafür hinzufügen. Es ist nur in den Kommentaren der Frage erwähnt, dass dies für eine Webansicht ist. – hcpl

0

Wenn Sie WebView verwenden Versuchen Sie Mozilla PDF.JS zu integrieren, wo Sie PDF rendern können. die auch Bilder enthalten können.

Verwandte Themen