Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

android button with half circle edges

I am trying to create a shape to be used for my imagebuttons in my Android project that would essentially have half circles for the left and right sides.

I thought I could just use a shape XML with a radius, but that just rounds the corners where I need the whole left and right sides to be half circles like the image below.

My current XML for the shape looks like this:

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

    <corners
       android:radius="60dip"
         />

    <stroke
        android:width="0dp"
        android:color="#000000" />


     <solid
        android:color="@color/white" />

</shape>

but I am trying to get this effect : enter image description here

like image 238
erik Avatar asked Jan 06 '14 16:01

erik


2 Answers

You must specify every corner radius like this:

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="rectangle">
    <solid android:color="@color/green" />
    <size android:height="30dp" />
    <corners
        android:bottomRightRadius="15dp"
        android:bottomLeftRadius="15dp"
        android:topRightRadius="15dp"
        android:topLeftRadius="15dp"
        />
</shape>

You should not specify the width, so that it can adjust the width as background drawable.

like image 192
wklbeta Avatar answered Oct 02 '22 05:10

wklbeta


How tall is your button? The shape drawable with rounded corners should work, you want the radius to be half of the height of the button.

like image 23
Matt Avatar answered Oct 02 '22 05:10

Matt