Control de usuario
Patrocinadores
Estadísticas
Miembros:
334.482
Online:
1.781
Hilos:
1.380.268
Mensajes:
24.867.022
Stats

Índice de foros Otras Consolas Desarrollo

Android y justificar texto

Dedicado al desarrollo de software casero para videoconsolas

Moderador: jiXo

Denbrough
Avatar de usuario
MegaAdicto!!!
 
Mensajes: 1534
Registrado: 05 Oct 2006

Android y justificar texto

Mensajepor Denbrough 16 Jun 2011 17:39

Hola buenas!

Me he encontrado un problema el cual no consigo solucionar. Estoy intentanto justificar un texto (de un textView) pero no se exactamente como hacerlo, he estado mirando los libros que tengo y no he encontrado en ninguno nada por el estilo. Espero que pueda hacerse ya sea con etiquetas de XML (lo cual me resultaria mas sencillo) o por codigo de java.

Un saludo y gracias.
Imagen

Davpk
Avatar de usuario
MegaAdicto!!!
 
Mensajes: 676
Registrado: 20 Jul 2004
Ubicación: Barcelona.

Mensajepor Davpk 18 Jun 2011 18:11

Buenas!

Estás igual que yo hace unas semanas, justo antes de publicar mi aplicación me dispuse a hacer el "disclaimer" y me encontré con que no había manera de justificar el texto de un TextView!! cawento
Después de mucho investigar, al parecer, la única manera posible de justificar un texto es usar un WebView y cargarle código HTML. Me explico mejor:

Donde tengas tu TextView en el xml pon algo tal que así (cambiando los valores de los márgenes y alineamientos):
Código: Seleccionar todo
<RelativeLayout android:id="@+id/relativeLayout2" android:layout_below="@+id/relativeLayout1" android:layout_height="fill_parent" android:layout_width="fill_parent" android:layout_marginTop="10dip" android:layout_marginLeft="15dip" android:layout_marginRight="15dip" android:layout_marginBottom="60dip">
      <WebView xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/webview" android:layout_width="fill_parent" android:layout_height="fill_parent" />
</RelativeLayout>


Eso contando que te mueves con RelativeLayouts, que desde mi punto de vista, son los mejores que hay jejeje [sonrisa]

Luego en el código solo hace falta cargar la WebView y "enchufarle" el html a saco:
Código: Seleccionar todo
webView  = (WebView) findViewById(R.id.webview);
webView.setBackgroundColor(Color.BLACK);
webView.setVerticalScrollBarEnabled(true);
webView.setVerticalFadingEdgeEnabled(true);
webView.setVerticalScrollbarOverlay(true);
webView.loadData(webPage_es, "text/html", "UTF-8");
La variable "webPage_es" es un string con todo el código html, también puedes meter el html como asset o fichero raw y cargarlo.

De esta manera se puede justificar el texto e incluso ponerle cualquier estilo con css. [risita]

El resultado final es bastante bueno:
Imagen
Además si te fijas, al ser un WebView, el solito te hace scroll si es necesario y puedes activar el "fade" de la parte superior e inferior que aún queda mas resultón :).

PD: No te fijes en mi capacidad de redacción en ingles, que ya se que es malísima! [+risas]

Un Saludo ;)
Soy Ti-Ra-Nog


Denbrough
Avatar de usuario
MegaAdicto!!!
 
Mensajes: 1534
Registrado: 05 Oct 2006

Mensajepor Denbrough 18 Jun 2011 20:31

Wow, es perfecto, justo como quiero. Cuando tenga mas tiempo me lo mirare bien y con calma me pondre a ello, muchisimas gracias
Imagen

Davpk
Avatar de usuario
MegaAdicto!!!
 
Mensajes: 676
Registrado: 20 Jul 2004
Ubicación: Barcelona.

Mensajepor Davpk 19 Jun 2011 10:54

Denbrough escribió:Wow, es perfecto, justo como quiero. Cuando tenga mas tiempo me lo mirare bien y con calma me pondre a ello, muchisimas gracias


De nada hombre, cualquier otra cosa no dudes en preguntarlo. [Ooooo]
Soy Ti-Ra-Nog


patrulleroo
Novato
 
Mensajes: 1
Registrado: 17 Nov 2011

Mensajepor patrulleroo 17 Nov 2011 09:25

Buenos días, abro de nuevo el hilo.
Antetodo muchísimas gracias por responder, lo he probado y va perfectamente. Mi duda viene en que tengo acentos y "ñ" en mi webView y no me reconoce estos carácteres, ¿me podrías orientar de como lo has solucionado?
Yo he creado un string del tipo:
Código: Seleccionar todo
        String webPage_es = "<html><body><div style=text-align:justify>Estoy probando el texto justificado, lo primero que pruebo son acentos y ñ, pá pé pí pó pú y las ññññññ </div></body></html>";

Saludos y de nuevo mil gracias!!

rYlEi
Avatar de usuario
MegaAdicto!!!
 
Mensajes: 1180
Registrado: 16 Jul 2003
Ubicación: A Coruña

Mensajepor rYlEi 17 Nov 2011 17:49

patrulleroo escribió:Buenos días, abro de nuevo el hilo.
Antetodo muchísimas gracias por responder, lo he probado y va perfectamente. Mi duda viene en que tengo acentos y "ñ" en mi webView y no me reconoce estos carácteres, ¿me podrías orientar de como lo has solucionado?
Yo he creado un string del tipo:
Código: Seleccionar todo

String webPage_es = "<html><body><div style=text-align:justify>Estoy probando el texto justificado, lo primero que pruebo son acentos y ñ, pá pé pí pó pú y las ññññññ </div></body></html>";

Saludos y de nuevo mil gracias!!


En el HTML te falta la etiqueta meta para definir el charset. Prueba con ella:

Código: Seleccionar todo
<html>
    <head>
        <meta charset=utf-8>
    </head>
    <body>...</body>
</html>";


Un saludo [bye] [bye]


Volver a Desarrollo

¿Quién está conectado?

Usuarios navegando por este foro: No hay usuarios registrados visitando el foro y 0 invitados