Destacar característica de texto como google play book

Quiero que mi aplicación Android tenga texto resaltado dentro de un WebView . Similar a la funcionalidad que se encuentra en Google Play Book. ¿Alguien tiene una idea de cómo lograr esto?

Estoy utilizando un WebView porque mi contenido está en formato html.

Básicamente hablando de este efecto:

Introduzca aquí la descripción de la imagen

A partir del nivel 11 de la API, puede utilizar el TextView de textIsSelectable .


Edit: Aunque la pregunta ha sido editada para mencionar específicamente WebView , el comentario de OP @ Suhail "mi contenido está en formato html" no descalifica completamente TextView ya que también puede renderizar algunos HTML básicos.

La selección azul que vea es parte del entorno android estándar al seleccionar texto. Así que debería funcionar en su webview estándar sin necesidad de ningún código personalizado. => Ya no estoy convencido de que esto sea cierto. Parece que no lo es.

Sin embargo, la selección verde (amarillo, naranja, rojo, …) es personalizada.

Podría leer el texto seleccionado de su evento de selección y utilizar esa información para actualizar el contenido html, envolver el texto en un intervalo con un conjunto de colores de fondo.

El enfoque alternativo es usar javascript y habilitar JavaScript en su webview. No estoy seguro sin embargo cómo conseguir eso hecho.

Algunas fuentes para comprobar ese enfoque son https://github.com/btate/BTAndroidWebViewSelection y Android: Cómo seleccionar texto de WebView y resaltarlo enclick

Selección de texto desde WebView detalles

Para que la selección de texto funcione en un WebView , puede utilizar el fragmento siguiente ( de esta pregunta ). Dispara esto en un clic de botón (u otro evento) desde el menú (de contexto).

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

Si su uso de WebView Trate de integrar Mozilla PDF.JS donde puede hacer PDF. Que puede contener imágenes también.

  • Fling Gesture y Webview en Android
  • Cómo enviar parámetros a un archivo local en un WebView en android?
  • Accesibilidad y WebView de Android
  • Ajuste el tamaño de fuente de Android WebView
  • Cómo establecer un título diferente para el cuadro de diálogo de alerta cuando se carga la página WebView?
  • ShouldOverrideUrlLoading en custom Cordova CordovaWebViewClient no funciona más
  • ¿Cómo manejar páginas web "infinitas"?
  • ¿Qué hace stopLoading () realmente hacer?
  • Hacer Android WebView no almacenar cookies o contraseñas
  • Aplicación android se estrella en el cambio de url de vista web
  • Fuentes hebreas de Android 2.3 en Webview
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.