web-dev-qa-db-de.com

Wie mache ich die Ecken eines Knopfes rund?

Ich möchte die Ecken einer button Runde machen. Gibt es eine einfache Möglichkeit, dies in Android zu erreichen?

414
artist

Wenn Sie so etwas wollen

Button preview

hier ist der Code.

1.Erstellen Sie eine XML-Datei in Ihrem Zeichenordner wie mybutton.xml und fügen Sie das folgende Markup ein:

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:Android="http://schemas.Android.com/apk/res/Android" >
    <item Android:state_pressed="true" >
        <shape Android:shape="rectangle"  >
            <corners Android:radius="3dip" />
            <stroke Android:width="1dip" Android:color="#5e7974" />
            <gradient Android:angle="-90" Android:startColor="#345953" Android:endColor="#689a92"  />            
        </shape>
    </item>
    <item Android:state_focused="true">
        <shape Android:shape="rectangle"  >
            <corners Android:radius="3dip" />
            <stroke Android:width="1dip" Android:color="#5e7974" />
            <solid Android:color="#58857e"/>       
        </shape>
    </item>  
    <item >
       <shape Android:shape="rectangle"  >
            <corners Android:radius="3dip" />
            <stroke Android:width="1dip" Android:color="#5e7974" />
            <gradient Android:angle="-90" Android:startColor="#8dbab3" Android:endColor="#58857e" />            
       </shape>
    </item>
</selector>

2. Verwenden Sie diese Option jetzt für den Hintergrund Ihrer Ansicht. Wenn die Ansicht eine Schaltfläche ist, dann sieht das so aus:

<Button
    Android:id="@+id/button1"
    Android:layout_width="wrap_content"
    Android:layout_height="wrap_content"
    Android:padding="10dp"
    Android:textColor="#ffffff"
    Android:background="@drawable/mybutton"
    Android:text="Buttons" />

Erstellen Sie eine XML-Datei in einem zeichnungsfähigen Ordner wie unten

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:Android="http://schemas.Android.com/apk/res/Android"
    Android:shape="rectangle" Android:padding="10dp">
    <!-- you can use any color you want I used here gray color-->
    <solid Android:color="#ABABAB"/> 
    <corners Android:radius="10dp"/>
</shape>

Wenden Sie dies als Hintergrund auf die Schaltfläche an, die abgerundete Ecken haben soll.

Oder Sie können für jede Ecke einen eigenen Radius wie unten verwenden

Android:bottomRightRadius="10dp"
Android:bottomLeftRadius="10dp"
Android:topLeftRadius="10dp"
Android:topRightRadius="10dp"
325
Sandip Jadhav

erstellen Sie shape.xml in einem zeichnungsfähigen Ordner

wie shape.xml

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:Android="http://schemas.Android.com/apk/res/Android" >
  <stroke Android:width="2dp"
    Android:color="#FFFFFF"/>
  <gradient 
    Android:angle="225"
    Android:startColor="#DD2ECCFA"
    Android:endColor="#DD000000"/>
<corners
    Android:bottomLeftRadius="7dp"
    Android:bottomRightRadius="7dp"
    Android:topLeftRadius="7dp"
   Android:topRightRadius="7dp" />
</shape>

und in myactivity.xml

sie können verwenden

<Button
    Android:id="@+id/btn_Shap"
    Android:layout_width="wrap_content"
    Android:layout_height="wrap_content" 
    Android:text="@string/Shape"
    Android:background="@drawable/shape"/>
28
Almostafa

Es ist so einfach. Erstellen Sie eine XML-Datei wie unten. Legen Sie es als Hintergrund für die Schaltfläche fest. Ändern Sie das Radiusattribut nach Ihren Wünschen, wenn Sie mehr Kurve für die Schaltfläche benötigen.

button_background.xml

<shape xmlns:Android="http://schemas.Android.com/apk/res/Android"
    Android:shape="rectangle">
    <solid Android:color="@color/primary" />
    <corners Android:radius="5dp" />
</shape>

Hintergrund für Ihre Schaltfläche festlegen:

<Button
    Android:id="@+id/button1"
    Android:layout_width="wrap_content"
    Android:layout_height="wrap_content"
    Android:background="@drawable/button_background"/>

Erstellen Sie die Datei myButton.xml

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:Android="http://schemas.Android.com/apk/res/Android">
    <solid Android:color="@color/colorButton"/>
    <corners Android:radius="10dp"/>
</shape>

fügen Sie zu Ihrem Knopf hinzu

 <Button
        Android:layout_width="wrap_content"
        Android:layout_height="wrap_content"
        Android:background="@drawable/myButton"/>
14
Sky

Ich fand heraus, dass es ein einfacher Weg war, eine neue XML-Datei im Zeichenordner zu erstellen und dann den Schaltflächenhintergrund auf diese XML-Datei zu verweisen. Hier ist der Code, den ich benutzt habe:

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

<solid Android:color="#ff8100"/>
<corners Android:radius="5dp"/>

</shape>
11
AntonioSanchez

Erstellen Sie eine round_btn.xml-Datei im Ordner Drawable ...

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:Android="http://schemas.Android.com/apk/res/Android"> 
     <solid Android:color="@color/#FFFFFF"/>    

     <stroke Android:width="1dp"
        Android:color="@color/#000000"
        />

     <padding Android:left="1dp"
         Android:top="1dp"
         Android:right="1dp"
         Android:bottom="1dp"
         /> 

     <corners Android:bottomRightRadius="5dip" Android:bottomLeftRadius="5dip" 
         Android:topLeftRadius="5dip" Android:topRightRadius="5dip"/> 
  </shape>

und benutze this.xml als Hintergrund für die Buttons

<Button
Android:id="@+id/btn"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:background="@drawable/rounded_btn"
Android:text="Test" />
11
Ravi Makvana

Dieser Link enthält alle Informationen, die Sie benötigen. hier

Shape.xml

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

    <solid   Android:color="#EAEAEA"/>

    <corners    Android:bottomLeftRadius="8dip"
                Android:topRightRadius="8dip"
                Android:topLeftRadius="1dip"
                Android:bottomRightRadius="1dip"
                />
</shape>

und main.xml

<?xml version="1.0" encoding="UTF-8"?>
<LinearLayout xmlns:Android="http://schemas.Android.com/apk/res/Android"
              Android:orientation="vertical"
              Android:layout_width="fill_parent"
              Android:layout_height="fill_parent">

    <TextView   Android:layout_width="fill_parent"
                Android:layout_height="wrap_content"
                Android:text="Hello Android from NetBeans"/>

    <Button Android:id="@+id/button"
            Android:layout_width="wrap_content"
            Android:layout_height="wrap_content"
            Android:text="Nishant Nair"
            Android:padding="5dip"
            Android:layout_gravity="center"
            Android:background="@drawable/button_shape"
            />
</LinearLayout>

Dies sollte Ihnen das gewünschte Ergebnis bringen.

Viel Glück

6

stilschaltfläche mit Symbol enter image description here

   <Button
        Android:id="@+id/buttonVisaProgress"
        Android:layout_width="fill_parent"
        Android:layout_height="wrap_content"
        Android:layout_gravity="center_horizontal"
        Android:layout_marginTop="5dp"
        Android:background="@drawable/shape"
        Android:onClick="visaProgress"
        Android:drawableTop="@drawable/ic_1468863158_double_loop"
        Android:padding="10dp"
        Android:text="Visa Progress"
        Android:textColor="@Android:color/white" />

shape.xml

    <?xml version="1.0" encoding="utf-8"?>
<shape xmlns:Android="http://schemas.Android.com/apk/res/Android"
Android:shape="rectangle">
<corners Android:radius="14dp" />
<gradient
    Android:angle="45"
    Android:centerColor="#1FA8D1"
    Android:centerX="35%"
    Android:endColor="#060d96"
    Android:startColor="#0e7e1d"
    Android:type="linear" />
<padding
    Android:bottom="0dp"
    Android:left="0dp"
    Android:right="0dp"
    Android:top="0dp" />
<size
    Android:width="270dp"
    Android:height="60dp" />
<stroke
    Android:width="3dp"
    Android:color="#000000" />
6
A.G.THAMAYS

wenn Sie Vektorzeichnungen verwenden, müssen Sie in Ihrer Zeichnungsdefinition lediglich ein <corners> -Element angeben. Ich habe dies in einem Blog-Post behandelt.

Wenn Sie Bitmap-/9-Patch-Drawables verwenden, müssen Sie die Ecken mit Transparenz im Bitmap-Bild erstellen.

4
Mark Allison