2013-10-24 2 views
14

Sto usando Button in uno dei layout. Desidero che la dimensione di Button sia piccola quanto la dimensione del testo/etichetta.Android: Riduzione delle dimensioni del pulsante

Sto usando il seguente codice.

<Button 
android:text="@string/cancle_button" 
android:id="@+id/button1" 
android:background="@drawable/back_button" 
android:layout_width="wrap_content" 
android:layout_height="wrap_content" 
android:gravity="center" 
android:textSize="12sp" 
android:textColor="#ffffff" 
android:textStyle="bold" /> 

Ma io voglio Button altezza per essere uguale l'altezza del testo/etichetta. Ogni volta che diminuisco o aumento l'altezza del testo, l'altezza dello Button rimane la stessa. Come dovrei risolvere questo problema?

+2

mentre si passa un'immagine in background, quindi la dimensione del pulsante dipenderà dalla dimensione dell'immagine e quindi dalle dimensioni del testo. Quindi se la dimensione del tuo testo è inferiore all'immagine non diminuirà. Ma se la dimensione del testo è più grande rispetto all'immagine, allora aumenterebbe per adattarsi al testo. Tutto ciò accade a causa della proprietà "wrap_content". – Arshu

+1

Grazie Arshad, ma qui sto usando un gradiente estraibile in formato .xml nella mia cartella drawable. –

+0

Anche in questo caso il gradiente ha anche una dimensione e una forma fisse. Quindi funziona come l'immagine stessa. – Arshu

risposta

1

È possibile utilizzare un layout relativo per ottenere ciò. Controllare questo codice di esempio,

<RelativeLayout 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" > 

    <TextView 
     android:id="@+id/textView1" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignParentLeft="true" 
     android:layout_alignParentTop="true" 
     android:text="TextView" /> 

    <Button 
     android:id="@+id/button1" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_toRightOf="@id/textView1" 
     android:layout_alignTop="@id/textView1" 
     android:layout_alignBottom="@id/textView1" 
     android:text="Button" /> 

</RelativeLayout> 
3

L'uso può richiedere la visualizzazione dell'immagine in questo caso o se la visualizzazione del testo in questo caso consente di scattare l'immagine con le dimensioni corrette in modo che non si azzeri attraverso queste misure è possibile impostare le dimensioni ridotte per l'immagine Il modo migliore è puoi prendere l'immagine con quella dimensione che vuoi creare nella sua buona maniera

+0

In questo requisito utilizzo la forma sfumata nella mia cartella estraibile –

1

Puoi risolvere questo problema impostando l'altezza del pulsante su un valore specifico uguale all'altezza dell'etichetta.

<Button 
android:text="CANCEL" 
android:id="@+id/button1" 
android:background="@drawable/back_button" 
android:layout_width="wrap_content" 
android:layout_height="20sp" 
android:gravity="center" 
android:textSize="15sp" 
android:textColor="#ffffff" 
android:textStyle="bold" /> 
+1

Grazie per la risposta, c'è un altro modo in cui il pulsante regola automaticamente le dimensioni senza codificarlo. Desidero che la dimensione del pulsante cambi quando cambia la dimensione del testo –

+0

Se si modifica dimensione del testo quindi come l'altezza è impostata come contenuto di avvolgimento che regolerà automaticamente tale altezza – jyomin

+0

Non sta regolando l'altezza del pulsante è rimasto lo stesso. –

82

È passato quasi un anno da quando è stata posta la domanda. Ma ho affrontato il problema ora e ho trovato una soluzione. :) Potrebbe essere che aiuterà qualcuno.

È possibile ottenere ciò impostando android:minHeight="0dp" per il widget Pulsante.

E immagino che questo comportamento sia dovuto al fatto che il frame ha un valore predefinito (può essere un 48dp) per i widget Button considerando un'area di tocco minima.

+4

Assolutamente. Soluzione brillante per un problema semplice. – tasomaniac

+2

questo dovrebbe essere contrassegnato come corretto uno – Redman

+1

Grazie @Sreekanth –