Join FlipAndroid.COM Telegram Group: https://t.me/joinchat/F_aqThGkhwcLzmI49vKAiw


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.

  • Android Scrollview en RelativeLayout con ButtonBar
  • Mostrar el botón de arriba en la barra de acción en las preferencias de la pantalla principal
  • ¿Cómo serializar un paquete?
  • Java.lang.IllegalStateException: No se puede realizar esta acción después de onSaveInstanceState con DialogFragment
  • Android cambiar dinámicamente el estilo en tiempo de ejecución
  • URLConnection con Cookies?
  • 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!

  • La facturación en la aplicación no funciona: "IAB Helper no está configurado"
  • Intentar invocar método virtual
  • Android: lee un archivo XML con HTTP GET
  • Android: PendingIntent de la notificación no activa el onCreate () si se vuelve a activar la actividad en la pantalla
  • SDK de Android Facebook: ¿Cómo generar una clave de hash sin depuración?
  • Error de Genymotion después de la actualización de Windows 10
  • 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.

    FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.