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.
- Cargar imagen de url en WebView (centrarse verticalmente)
- Android WebView causa la violación de StrictMode
- Android, Webview, obtener datos de formulario enviados
- Detectar error de vista Web y mostrar mensaje
- Diseño de página de pago de Paypal roto en webview android
Básicamente hablando de este efecto:
- WebView onPageFinished se está llamando cuando el error Página no disponible. ¿Solución?
- Problema de renderizado de WebView en Android KitKat
- Cómo realizar un clic de botón dentro de un Webview Android
- Guardar / restaurar estado de android webview
- ¿Por qué jQuery Mobile 1.1-rc1 utiliza un .gif para el icono de carga (de nuevo)?
- La página Web Gujarati no se muestra perfecta en la vista Web
- Android - Descargar e instalar el archivo apk en Webview
- Cómo utilizar una fuente personalizada con WebView
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.
- Error en la construcción de la suite de pruebas – (android.test.suitebuilder.TestSuiteBuilder $ FailedToCreateTests). ¿Cómo resolver?
- Detección de características faciales con OpenCV Android