How to make the corners of a button round? [closed

2019-01-01 14:20发布

问题:

I want to make the corners of a button round. Is there an easy way to achieve this in Android?

回答1:

If you want something like this

\"Button

here is the code.

1.Create a xml file in your drawable folder like mybutton.xml and paste the following markup:

<?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.Now use this drawable for the background of your view. If the view is button then something like this:

<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\" />


回答2:

Create a xml file in drawable folder like below

<?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>

Apply this as background to button you want make corners round.

Or you can use separate radius for every corner like below

android:bottomRightRadius=\"10dp\"
android:bottomLeftRadius=\"10dp\"
android:topLeftRadius=\"10dp\"
android:topRightRadius=\"10dp\"


回答3:

create shape.xml in drawable folder

like 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>

and in myactivity.xml

you can use

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


回答4:

It\'s so simple. Create an XML file like below one. Set it as background for the button. Change the radius attribute to your wish, if you need more curve for the button.

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>

Set background to your button:

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


回答5:

Simple way i found out was to make a new xml file in the drawable folder and then point the buttons background to that xml file. heres the code i used:

<?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>


回答6:

Create file 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>

add to your button

 <Button
        android:layout_width=\"wrap_content\"
        android:layout_height=\"wrap_content\"
        android:background=\"@drawable/myButton\"/>


回答7:

Create rounded_btn.xml file in Drawable folder...

<?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>

and use this.xml file as a button background

<Button
android:id=\"@+id/btn\"
android:layout_width=\"wrap_content\"
android:layout_height=\"wrap_content\"
android:background=\"@drawable/rounded_btn\"
android:text=\"Test\" />


回答8:

This link has all the information you need. Here

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>

and 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>

This should give you your desired result.

Best of luck



回答9:

if you are using vector drawables, then you simply need to specify a <corners> element in your drawable definition. I have covered this in a blog post.

If you are using bitmap / 9-patch drawables then you\'ll need to create the corners with transparency in the bitmap image.



回答10:

style button with icon \"enter

   <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\" />