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!!
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):
<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
Luego en el código solo hace falta cargar la WebView y "enchufarle" el html a saco:
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.
El resultado final es bastante bueno:
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!
Un Saludo