2013-05-06 10 views
49

Example buttonsJak zmniejszyć wewnętrzne wypełnienie wokół tekstu w obiekcie przycisku Android?

Tak, w tej chwili mam przycisk, który wygląda jak pierwszy obraz powyżej. Jak zmniejszyć wypełnienie wokół tekstu wewnątrz samego przycisku (aby wyglądać bardziej jak drugi obraz)?

szerokość rozmieszczenie i wysokość jest ustawiony jako:.

android:layout_width="match_parent" 
android:layout_height="wrap_content" 

styl niestandardowy kształt ma parametry”

<shape xmlns:android="http://schemas.android.com/apk/res/android" 
android:shape="rectangle" android:padding="10dp"> 

Z resztą po prostu atrybuty kolorów i wartości promieni

Wystarczy wyjaśnij, chcę, aby ramka przycisku przytulała tekst "Zaloguj się bliżej."

Cała pomoc i opinie są mile widziane. Dzięki.

+1

android: dopełnienie = "10dp zredukować 10 DP 5DP – Raghunandan

+0

które odnosi się do zewnętrznej wyściółki z Buttona Odnoszę się do wewnętrznego dopełnienia "login" i jego kontenera, chociaż dziękuję, –

+0

@ImranNZ, myślę, że powinieneś przyjąć odpowiedź Qadira Hussaina, stwierdzam, że to faktycznie rozwiązuje problem, który myślę, że stoisz przed. – DataGraham

Odpowiedz

137

Zajęło mi to na zawsze znalezienie tego, ale "dopełnienie" wokół tekstu w przycisku nie jest tak naprawdę padd w ogóle. Domyślny styl Widget.Button obejmuje właściwość minHeight. Zmiana minHeight na przycisku pozwoli Ci dostosować dopełnienie zgodnie z oczekiwaniami.

<Button 
     android:id="@+id/header" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:text="@string/test" 
     android:textColor="@color/black" 
     android:minHeight="40dip"/> 


<style name="Widget.Holo.Button" parent="Widget.Button"> 
    <item name="android:background">@android:drawable/btn_default_holo_dark</item> 
    <item name="android:textAppearance">?android:attr/textAppearanceMedium</item> 
    <item name="android:textColor">@android:color/primary_text_holo_dark</item> 
    <item name="android:minHeight">48dip</item> 
    <item name="android:minWidth">64dip</item> 
</style> 
+1

To naprawdę działa !! Dziękuję bardzo – Santosh

+0

Dziękuję bardzo! To działa! – Mauker

+2

Miałem podobny problem z szerokością.Ustawienie android: minWidth = "0dp" działało, ale potem na przyciskach z długim tekstem, wymagałem ustawienia android: paddingRight i android: paddingLeft, aby zapobiec złemu układowi. –

1

Jeśli chcesz mniejszą górną i dolną wyściółkę, użyj tego:

android:paddingTop="2dp" 
android:paddingBottom="2dp" 
+0

To dotyczy wyściółki poza przyciskiem. Efekt, którego szukam, polega na tym, aby ramka przycisku przytuliła się do tekstu "Logowanie". Dzięki. –

+0

Czy możesz pokazać nam pełny xml dla Twojego przycisku? – Neoh

+1

To już jest wewnętrzne wypełnienie przycisku. Być może będziesz musiał sprawdzić, czy dodałeś wiersze takie jak "android: padding" lub "android: layout_margin" 'w widokach rodzica' '. – Neoh

4

spróbować tego w niestandardowym pliku shape.xml

<shape xmlns:android="http://schemas.android.com/apk/res/android" 
android:shape="rectangle" 
android:paddingLeft="10dp" 
android:paddingRight="10dp" 
android:paddingTop="1dp" 
android:padding="1dp"> 

również można dokonać zmiany w swoim przycisku, xml

android:layout_width="wrap_content" 
android:layout_height="wrap_content" 
+0

Chciałbym, żeby to działało, ale nie dla mnie –

+0

To nie działa, jeśli czytasz to, co pierwotne pytanie zadaje –

Powiązane problemy