Presentar contenido html como "páginas dinámicas"

Estoy construyendo un lector de libros electrónicos para Android. El contenido de un libro electrónico a menudo se divide en archivos html (epub) con uno o capítulos en ellos.

Estoy planeando construir un lector de libros electrónicos que divida el contenido de esos archivos en diferentes "páginas". El problema es saber cuántos textos "encajan" en una página y calcular la cantidad correcta de páginas, ya que depende de varios factores, como: tamaño de fuente, tamaño de palabra, párrafos, imágenes, salto de página , Titulares, etc.

Idealy i tendría mi texto justificado y seleccionable, y puesto que eso no es posible con TextView normal o EditText debo utilizar un WebView no-scrollable.

Así que para resumir, ¿cómo puedo "medir" la cantidad de texto que encaja en una "página" en mi WebView? ¿O hay un mejor enfoque diferente para resolver esto? Vi que la clase Paint como soporte para texto de medida y breakText.

¡Gracias!

3 Solutions collect form web for “Presentar contenido html como "páginas dinámicas"”

Nota: Esta respuesta no utiliza la vista web como su superficie de visualización.

Puede utilizar el lienzo para dibujar cada página. El lienzo le da su altura y el ancho con el que puede dibujar cada línea en el lienzo utilizando drawText basado en el ancho y la altura disponible.

Básicamente puede calcular cuántas letras pueden encajar en una línea, tomar muchas palabras, teniendo cuidado de no dividir las palabras y seguir dibujando el texto.

Si rompe las tareas para utilizar diferentes trabajadores para cada párrafo, también puede hacerlo rápido.

Tal vez usted puede hacerlo de esta manera

  • El texto se agrega y se representa dentro de WebView

  • En WebView, puede utilizar Javascript para inspeccionar el estado actual del árbol DOM y extraer medidas como el ancho y la altura de elementos individuales

  • Javascript comunica de nuevo el tamaño de la página al creador de WebView mediante una devolución de llamada

  • Cuando JavaScript detecta que se supera el umbral de tamaño de página, envía una señal para un salto de página necesario

Android HTML5 Kindle hace la página que rompe con Javascript por lo que es definitivamente posible.

Echa un vistazo a la fuente de FitText o tal vez aquí . Ambos figuran cuánto texto puede caber en un espacio dado. Usted puede ser capaz de pedir prestado ideas de ellos y adaptarse a sus propósitos.

  • Uso del botón Atrás en una vista web en Android
  • ¿Cuál es el equivalente de "android: windowSoftInputMode" para un sitio web?
  • Botón Atrás para la página anterior en la vista web android no funciona
  • WebView no está llenando toda la pantalla del dispositivo o el emulador
  • Maneje las teclas de flecha desde D-pad en la aplicación WebView de Google TV
  • Android WebView: amplía el zoom a una escala específica después de cargar el contenido
  • ¿Hay problemas en la vista Web de Android para SVG? Nivel API 16 +
  • Impedir que WebView cargue la URL en Android (React Native)
  • Eliminar la superposición de enfoque: color de la vista web
  • (Cómo) puedo aumentar el límite de cuota de LocalStorage en Android WebView
  • ¿Cómo deshabilitar el mensaje de pan tostado que a veces aparece con los controles de zoom en un WebView?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.