2012-03-27 18 views
146

Chcę utworzyć przycisk niestandardowy i potrzebuję go do koła. Jak mogę utworzyć przycisk koła? Nie sądzę, że to możliwe z draw9patch.Przycisk niestandardowego okręgu

Również nie wiem, jak zrobić przycisk niestandardowy!

Masz jakieś sugestie?

+0

musisz rozszerzyć klasę przycisków i nadpisać metodę onDraw. –

+2

ale problem jest tutaj, jeśli to przedłużam, a użytkownik dotyka poza kółkiem, Onlcick zostanie wywołany, jak rozwiązać ten problem. – Ata

+0

dlaczego po prostu nie ustawiłeś okrągłego obrazu kształtu jako tła do przycisku? – MKJParekh

Odpowiedz

285

Wykorzystanie XML odkształcalne tak:

Zapisz następującej treści jak round_button.xml w drawable folderze

<?xml version="1.0" encoding="utf-8"?> 
<selector xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item android:state_pressed="false"> 
     <shape android:shape="oval"> 
      <solid android:color="#fa09ad"/> 
     </shape> 
    </item> 
    <item android:state_pressed="true"> 
     <shape android:shape="oval"> 
      <solid android:color="#c20586"/> 
     </shape> 
    </item> 
</selector> 

Android istotny wpływ: Chociaż FloatingActionButton jest lepszym rozwiązaniem, jeśli chcesz zrobić to za pomocą selektor xml, utwórz folder drawable-v21 w res i zapisz następną wersję:

<?xml version="1.0" encoding="utf-8"?> 
<ripple xmlns:android="http://schemas.android.com/apk/res/android" 
    android:color="#c20586"> 
    <item> 
     <shape android:shape="oval"> 
      <solid android:color="#fa09ad"/> 
     </shape> 
    </item> 
</ripple> 

i ustawić go jako tło Button w XML jak poniżej:

<Button 
android:layout_width="50dp" 
android:layout_height="50dp" 
android:background="@drawable/round_button" 
android:gravity="center_vertical|center_horizontal" 
android:text="hello" 
android:textColor="#fff" /> 

Ważne:

  1. jeśli chcesz pokazać wszystkie te stany (włączona, wyłączona, podświetlony etc), użyjesz selektora jako described here.
  2. Musisz zachować oba pliki, aby można było narysować wsteczną. W przeciwnym razie napotkasz dziwne wyjątki w poprzedniej wersji Androida.
+1

Dzięki! Dodałem go do mojej aplikacji! to wygląda niesamowicie!!!! – vitaluha

+0

Jak dodać centrum graficzne zaokrąglonego przycisku .. – reegan29

+0

Przez rysowany folder należy otworzyć folder o nazwie "drawable" lub zapisać go w drawable-mdpi, hdpi, etc ...? – Jjang

55

Markushi napisał widget z kółkiem z niesamowitymi efektami. Kliknij here!

enter image description here

+1

Świetny przycisk .. podziękowania za kod – John

+0

Jak używać tego z nieokrągłym obrazem? – tomsoft

+2

Po prostu heads up: biblioteka połączona w tej odpowiedzi jest teraz przestarzała. Autor (Markushi) zaleca zamiast tego użycie [Floating Action Button] (https://developer.android.com/reference/android/support/design/widget/FloatingActionButton.html). –

14

AngryTool for custom android button

Możesz zrobić każdy rodzaj przycisku niestandardowego android z tej strony narzędziowej ... robię okrąg i kwadrat z okrągłego przycisku rogu tej toolsite .. Odwiedź może być pomogę ci

+1

Dziękuję człowieku. Uratowałeś mnie. Dokładnie tego potrzebuję. – Suniel

+0

Przyjemne narzędzie! Dzięki! – camelCaseCoder

+0

Yeh..Enjoy Kodowanie –