studio programacion para móviles libro edición desarrollo desarrollar curso aprende aplicaciones android string view textview spannablestring

para - manual de programacion android pdf



Android: ¿cómo determinar la última letra completamente visible en TextView? (1)

Creo que predecir dónde terminará un texto sería difícil / imposible a menos que estuvieras usando una fuente monoespaciada, por ejemplo, Courier. Pero en lugar de tomar este enfoque, una alternativa que puedo sugerir es simplemente entregar un número constante de caracteres para cada página de su lector de libros. Sí, esto significa que con una fuente no monoespaciada no sabrá la cantidad exacta de líneas que se renderizarán. Sin embargo, el número de líneas tomadas debería estar dentro de un rango bastante estrecho, y lo más probable es que no sea perceptible para el usuario.

Puede usar un ScrollView aquí, que contendría el TextView contiene el texto de cada página. Aquí hay un esqueleto de lo que podría parecer:

<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/activity_main" android:layout_width="match_parent" android:layout_height="match_parent" android:padding="10dp"> <ScrollView android:layout_width="fill_parent" android:layout_height="wrap_content"> <TextView android:layout_width="match_parent" android:layout_height="match_parent" android:text="...some text..." /> </ScrollView> </RelativeLayout>

Usando un ScrollView , el usuario puede simplemente arrastrar hacia arriba y hacia abajo para capturar cualquier contenido que pueda no encajar en una sola pantalla. De nuevo, esto te libera de tener que preocuparte de entregar una cantidad exacta de contenido.

Estoy tratando de construir un lector de libros. Y ahora estoy teniendo un texto largo que llena toda la pantalla e incluso parte del texto está fuera de la pantalla. Quiero saber cómo encontrar la última letra que está completamente visible en la pantalla para poder dividir el texto en páginas.

Por ejemplo, todas las líneas antes

"Malas noticias, Vernon", dijo ......

son texto completamente visible, y el texto restante debe moverse a otra página.

Me gusta esto (otra página de texto comienza con "malas noticias")

Aquí está el diseño que utilicé en el ejemplo anterior

<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/activity_main" android:layout_width="match_parent" android:layout_height="match_parent" android:padding="10dp"> <TextView android:layout_width="match_parent" android:layout_height="match_parent" android:text="...some text..." /> </RelativeLayout>