2011-03-11 19 views
6

Sto creando un pulsante personalizzato. Voglio impostare la posizione del testo sul pulsante.Allineamento del testo sul pulsante

  • Ho due immagini di sfondo per il pulsante (button_off e button_on) prima è per il tasto normale e secondo è per onFocus/onPressed Stato.

enter image description here enter image description here

  • ora devo mettere il testo sul pulsante allora dovrebbe apparire come:

enter image description here enter image description here

Ma io sono in grado di impostare l'esatto posizione del testo su questa immagine del pulsante di sfondo. Si prega di condividere il tuo suggerimento per risolvere questo problema.

+0

segui questo link [Tasti] (http://www.androidpeople.com/button), u otterrà risposta qui. e navigare attraverso questo sito web imparerai molto – Prachur

+0

grazie al suo link utile. –

+2

Non riesco a trovare la risposta nella pagina collegata. E inoltre, penso che sia brutto stile pubblicare un link/raccolta di articoli come risposta a una domanda specifica. Se la risposta può essere trovata da qualche parte tra gli articoli, basta collegarlo direttamente all'articolo, almeno. – Hinton

risposta

3

È possibile provare a utilizzare l'immagine a 9 patch come sfondo. Ulteriori informazioni al riguardo: http://developer.android.com/guide/topics/graphics/2d-graphics.html#nine-patch

+0

Secondo. 9 patch è la prima cosa che mi viene in mente. – trgraglia

+0

Ma come puoi vedere in quel pulsante il testo dell'immagine non è al centro di Button. questo è 5 pixel in più rispetto al centro. Quindi come farlo? –

+0

Quando si utilizza 9-patch come sfondo, manualmente (con lo strumento "draw9patch" di Google) si definisce l'area che è estensibile e l'area in cui verrà visualizzato il testo. Penso che dovrebbe risolvere il tuo problema. – sergeytch

1

Allineare il testo, utilizzare l'opzione gravità! o provare con imbottitura

+0

possiamo usare il padding solo per il layout non per il testo. impostando la gravità possiamo impostare solo l'allineamento sinistro/destro/superiore/inferiore/centrale. ma voglio impostare il testo di 5 pixel in più rispetto al centro .. –

+0

Sono in grado di usare il padding anche per il testo! – sat

0

alcuni modi:

  1. definire un pulsante e provare android:drawableStart
  2. estendono Button e disegnare voi stessi
  3. cercare di definire un LinearLayout che tengono un testo e un'immagine con uno sfondo del tuo pulsante, imposta entrambi peso di 1 e metterli all'interno di un altro LinearLayout e renderli onClick non può assicurare 3 funzionerà senza un tweak o due, ma vale la pena provare
1
<Button 
    android:id="@+id/button1" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:drawableLeft="@android:drawable/arrow_down_float" 
    android:background="@drawable/btn_all_bg" 
    android:text="All"> 
Button> 

È possibile utilizzare il drawableLeft/destra/alto/basso per aggiungere l'icona su un pulsante e il testo sarebbe regolare automaticamente.

+0

modo migliore e semplice. Grazie per la risposta –

3

È possibile impostare queste proprietà nel file XML, `

<Button 
    android:id="@+id/button1" 
    android:layout_width="120dp" 
    android:layout_height="wrap_content" 
    android:drawablePadding="5dp" 
    android:drawableLeft="@android:drawable/ic_lock_lock" 
    android:text="All" 
    android:gravity="center"/> 

`

0

È possibile utilizzare il layout come un pulsante style="@android:style/Widget.Button", e configurarlo come si desidera.

incolla questo nel file XML:

<LinearLayout 
android:id="@+id/button" 
style="@android:style/Widget.Button" 
android:layout_width="wrap_content" 
android:layout_height="wrap_content" 
android:orientation="vertical" > 
<TextView 
    android:id="@+id/textView1" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_marginLeft="2dp" 
    android:text="TextView" /> 

</LinearLayout> 
Problemi correlati