2014-12-30 15 views
14

Chcę, aby przycisk dokładnie tak jak w tym obraziejak zrobić przycisk w kształcie kapsułki w Androidzie?

Capsule button

chcę użyć pliku xml, który będzie używany do produkcji takiego przycisku. Czy ktoś może mi powiedzieć, jak to zrobić?

+0

Można sprawdzić tutaj dla ewentualnej odpowiedzi z yours.http: //stackoverflow.com/questions/7606995/android-how-apply-shape-and-selector-simultaneously-for-button – virendrao

Odpowiedz

28

końcu znalazłem sposób to zrobić z pliku XML. tutaj jest kod pliku xml, który dał mi przycisk kształtu kapsuły.

<?xml version="1.0" encoding="utf-8"?> 
<shape xmlns:android="http://schemas.android.com/apk/res/android" 
android:shape="rectangle" > 

    <corners 
    android:bottomLeftRadius="30dp" 
    android:bottomRightRadius="30dp" 
    android:radius="60dp" 
    android:topLeftRadius="30dp" 
    android:topRightRadius="30dp" /> 

    <solid android:color="#CFCFCF" /> 

    <padding 
    android:bottom="0dp" 
    android:left="0dp" 
    android:right="0dp" 
    android:top="0dp" /> 

    <size 
    android:height="60dp" 
    android:width="270dp" /> 

</shape>  
+1

Atrybut 'promień' będzie zignorować, ponieważ ustawiasz również indywidualny promień (np. 'bottomLeftRadius'). Aby zacytować [docs] (http://developer.android.com/guide/topics/resources/drawable-resource.html), "Promień dla wszystkich narożników, jako wartość wymiaru lub zasób wymiaru. To jest przesłonięte dla każdego róg według następujących atrybutów. " – tir38

+0

Usunąłem atrybut wielkości statycznej i zwiększyłem wspólny promień do 50 dp (po usunięciu wszystkich górnych, dolnych, lewego i prawego promienia) –

2

rozważyć dostosowywania shape do niego i używać corners wewnątrz tego kształtu:

<?xml version="1.0" encoding="utf-8"?> 
<shape xmlns:android="http://schemas.android.com/apk/res/android" 
    android:shape="rectangle"> 
    <corners android:radius="10dp"/> <!-- increasing the value, increases the rounding. And as TTransmit said, to make it like a capsule make the radius half of your button height --> 
    <solid android:color="#AAAAAA"/> <!-- the button color --> 

</shape> 

więc zapisać, że kształt w folderze /drawable, powiedzmy, że zostanie on zapisany jako „button_bg.xml”, tak podczas deklarowania przycisk w xml układ:

<Button 
    android:background="@drawable/button_bg" 
    android:layout_height="20dp" 
       . 
       .       /> 
+1

Trick uzyskać kształt kapsuły, należy dodatkowo określić wysokość elementu przycisku jako dwukrotność promienia naroża, tj. 20 dp w tym przypadku. Dobrym pomysłem byłoby stworzenie stylu wykorzystującego wysokość i tło do rysowania. – TTransmit

+0

@TTransmit dobry napiwek –

+0

Próbowałem powyższych sposobów wspomnieć za pomocą zarówno prostokąta jak i owalnego kształtu, ale nic nie wydaje się dać kształt kapsułka, którą chcę. – user3393926

0

Oto kod przycisku w XML do tworzenia, ale jeśli chcesz przycisk, aby utworzyć jak kapsuła w kształcie trzeba dodać tło

 <Button 
      android:id="@+id/image" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      **android:background="@drawable/button_background"** 
      android:text="@string/image" > 
     </Button> 

tworzyć button_background.xml w rozciągliwej folderze, wpisz następujący kod w button_background.xml

  <?xml version="1.0" encoding="UTF-8"?> 

      <shape xmlns:android="http://schemas.android.com/apk/res/android" 

      android:shape="rectangle" android:padding="40dp"> 

      <!-- you can use any color you want I used here gray color--> 

     <solid android:color="#01A9DB"/> 

      <corners 

      android:bottomRightRadius="20dp" 

      android:bottomLeftRadius="20dp" 

      android:topLeftRadius="20dp" 

      android:topRightRadius="20dp"/> 

     </shape> 
Powiązane problemy