Autore Topic: TextView con allineamento al centro  (Letto 3817 volte)

Offline ScarfaceIII

  • Utente junior
  • **
  • Post: 112
  • Respect: +13
    • raferalston12
    • Mostra profilo
  • Dispositivo Android:
    Nexus One
  • Sistema operativo:
    GNU/Linux, Ubuntu 10.04 / Windows 7
TextView con allineamento al centro
« il: 03 Novembre 2010, 18:33:19 CET »
0
Ciao a tutti, vorrei creare un TextView che su più righe che abbia però l'allineamento del testo al centro. Quello che ho ora:

Bla Bla Bla Bla Bla Bla
Bla Bla


quello che vorrei:

Bla Bla Bla Bla Bla Bla
        Bla Bla

Perdonate il tentativo infantile di farmi capire...ma è il modo più veloce che mi veniva in mente!  :-P

L'unico modo per ora è spezzare la TextView in due (le due righe) e mettere
Codice (XML): [Seleziona]
android:layout_centerHorizontal="true" ma non è il massimo, non è "scalabile soprattutto". Se avessi bisogno di 3,4 o più righe dovrei creare 3,4 o più TextView. Ho provato a spulciare un po' tra gli attributi di TextView senza fortuna per il momento...ho trovato solo come cambiare il font, le dimensioni, il colore, lo stile (grassetto, corsivo, ecc...). Possibile non esista un "giustificato", "allinea a destra/sinistra", "allinea al centro" etc etc?!

grazie a tutti

Offline bradipao

  • Moderatore globale
  • Utente storico
  • *****
  • Post: 4043
  • keep it simple
  • Respect: +567
    • Github
    • Google+
    • bradipao
    • Mostra profilo
  • Dispositivo Android:
    Nexus 5
  • Play Store ID:
    Bradipao
  • Sistema operativo:
    W7
Re:TextView con allineamento al centro
« Risposta #1 il: 03 Novembre 2010, 19:09:56 CET »
0
Forse questo fa al caso tuo:

Codice (XML): [Seleziona]
<TextView android:id="@+id/mioid"
        android:text="aaaa aaaa aaaa aaaa aaaa aaaa aaaa"
        android:layout_weight="1" android:gravity="center_horizontal"
        android:layout_width="0dip" android:layout_height="wrap_content" />

Il concetto se non ricordo male è questo: con gravity stabilisci che gli oggetti all'interno del textview sono attratti al centro, però questo non basta perchè la textview si dimensiona in base al proprio contenuto e quindisi allinea come dice il suo parent, allora si mette l'accoppiata layout_width="0dip" e android:layout_weight="1" per dirgli di andare ad occupare tutto lo spazio possibile in orizzontale.

Fammi sapere se funziona.  :-P

EDIT : come regola generale, tutto quello che è preceduto da layout_ (esempio layout_centerhorizontal, ma anche layout_gravity e tutti gli altri) va ad agire su come l'oggetto va a collocarsi rispetto al parent, ma non influenza il proprio contenuto. E' per questo che non funzionava, finchè la textview era su un rigo, era della dimensione esatta del testo e la sua centratura equivaleva a quella del proprio contenuto. Appena scattava la seconda riga, la magagna usciva fuori. Di nuovo, ti sto scrivendo senza provare niente, potrei aver detto qualche castroneria.  :D
« Ultima modifica: 03 Novembre 2010, 19:14:11 CET da bradipao »
NON rispondo a domande nei messaggi privati
Bradipao @ Play Store

Offline ScarfaceIII

  • Utente junior
  • **
  • Post: 112
  • Respect: +13
    • raferalston12
    • Mostra profilo
  • Dispositivo Android:
    Nexus One
  • Sistema operativo:
    GNU/Linux, Ubuntu 10.04 / Windows 7
Re:TextView con allineamento al centro
« Risposta #2 il: 03 Novembre 2010, 19:33:48 CET »
0
La TextView è scomparsa in toto. Oltretutto, usando un RelativeLayout e avendo messo altre View con l'attributo "below="la-mia-Text-View", sono scomparse anch'esse!  :-o

Offline blackgin

  • Moderatore globale
  • Utente storico
  • *****
  • Post: 1387
  • Respect: +164
    • Google+
    • blackgins
    • blackginsoft
    • Mostra profilo
  • Dispositivo Android:
    Galaxy Nexus
  • Sistema operativo:
    Mac OSX 10.8
Re:TextView con allineamento al centro
« Risposta #3 il: 03 Novembre 2010, 19:44:19 CET »
0
La TextView è scomparsa in toto. Oltretutto, usando un RelativeLayout e avendo messo altre View con l'attributo "below="la-mia-Text-View", sono scomparse anch'esse!  :-o
Posta tutto il codice
Postate il LogCat LogCat LogCat LogCat LogCat

Offline ScarfaceIII

  • Utente junior
  • **
  • Post: 112
  • Respect: +13
    • raferalston12
    • Mostra profilo
  • Dispositivo Android:
    Nexus One
  • Sistema operativo:
    GNU/Linux, Ubuntu 10.04 / Windows 7
Re:TextView con allineamento al centro
« Risposta #4 il: 03 Novembre 2010, 20:14:39 CET »
0
Codice (XML): [Seleziona]
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
   android:orientation="vertical"
   android:layout_width="fill_parent"
   android:layout_height="fill_parent"
   >
<TextView
        android:textSize="20dip"
        android:textColor="#ffffff"
        android:text="@string/welcome"
        android:id="@+id/welcome"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentTop="true"
        android:paddingTop="10dip"
   android:layout_centerHorizontal="true"
        />
<TextView
        android:textColor="#ffffff"
        android:text="@string/explanation"
        android:id="@+id/explanation"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@+id/welcome"
   android:layout_centerHorizontal="true"
        />      
<TextView  
        android:id="@+id/insert_address"
   android:layout_width="wrap_content"
   android:layout_height="wrap_content"
   android:layout_below="@+id/explanation"
   android:layout_centerHorizontal="true"
   android:paddingTop="15dip"
   android:text="Inserire indirizzo di destinazione:"
   />
<EditText
        android:text=""
        android:id="@+id/Address"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_below="@+id/insert_address"
        />
<Button
        android:text="Apri Google Maps"
        android:id="@+id/MapsButton"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@+id/Address"
        android:layout_centerHorizontal="true"
        />
       
<LinearLayout
        android:layout_alignParentBottom = "true"
        android:id="@+id/lower_section"
        android:orientation="vertical"
        android:layout_height="wrap_content"
        android:layout_width="fill_parent"
        android:padding="10dip"
        >
<Button
        android:text="Chiudi ArtAlert"
        android:id="@+id/CloseButton"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        />
        </LinearLayout>
</RelativeLayout>

Grazie dell'aiuto!  :D