2011-03-11 11 views
6

Tworzę niestandardowy przycisk. Chcę ustawić pozycję tekstu na przycisku.Wyrównanie tekstu na przycisku

  • Mam dwa obrazy tła dla przycisku (button_off i button_on) pierwszy dla normalnego przycisku, a drugi dla stanu onFocus/onPressed.

enter image description here enter image description here

  • Teraz muszę umieścić tekst na przycisku to powinno wyglądać:

enter image description here enter image description here

ale jestem w stanie ustawić dokładny pozycja tekstu na tym przycisku w tle. Proszę podziel się swoją sugestią, aby rozwiązać ten problem.

+0

tego linku [Buttons] (http://www.androidpeople.com/button), u będzie się odpowiedzieć tutaj. i surfować po tej stronie dowiesz się dużo – Prachur

+0

dzięki jej przydatny link. –

+2

Nie mogę znaleźć odpowiedzi na połączonej stronie. A poza tym, myślę, że to zły styl, aby opublikować kolekcję linków/artykułów jako odpowiedź na konkretne pytanie. Jeśli odpowiedź znajdzie się gdzieś wśród artykułów, po prostu wpisz link bezpośrednio do artykułu. – Hinton

Odpowiedz

3

Możesz spróbować użyć obrazu w 9-plasterkach jako tła. Więcej informacji na ten temat tutaj: http://developer.android.com/guide/topics/graphics/2d-graphics.html#nine-patch

+0

Po drugie. 9-plaster to pierwsza rzecz, która przyszła mi do głowy. – trgraglia

+0

Ale jak widać w tym przycisku tekst obrazu nie znajduje się w środku przycisku. to 5 pikseli więcej niż centrum. Jak to zrobić? –

+0

Jeśli używasz 9-plasterków jako tła, ręcznie (za pomocą narzędzia Google "draw9patch") określ obszar, który można rozciągnąć, oraz obszar, w którym pojawi się Twój tekst. Myślę, że powinno to rozwiązać twój problem. – sergeytch

1

Wyrównaj tekst, użyj opcji grawitacji! lub spróbuj z wyściółką

+0

możemy użyć dopełnienia tylko dla układu, a nie dla tekstu. ustawiając grawitację możemy ustawić tylko wyrównanie w lewo/prawo/góra/dół/środek. ale chcę ustawić tekst o 5 pikseli więcej niż centrum .. –

+0

Jestem w stanie używać wypełnienia nawet dla tekstu! – sat

0

kilka sposobów:

  1. zdefiniować przycisk i spróbuj android:drawableStart
  2. przedłużyć przycisk i wyciągnąć sobie
  3. spróbować zdefiniować LinearLayout które posiadają tekst i obraz z tle twojego przycisku, ustaw oba te elementy na wadze 1 i umieść je wewnątrz innego LinearLayout i spraw, aby je onClick nie może zapewnić, że 3 będzie działało bez poprawek lub dwóch, ale warto spróbować
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> 

Można użyć drawableLeft/prawo/góra/spód, aby dodać ikonę na przycisk i tekst będzie automatycznie regulować.

+0

najlepszy i łatwy sposób. Dziękuję za odpowiedź –

3

Można ustawić te właściwości w pliku 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

Można użyć układu jako przycisk style="@android:style/Widget.Button" i skonfigurować go tak, jak chcesz.

wkleić w pliku 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> 
Powiązane problemy