kaplanfat
kaplanfat

Reputation: 154

EditText does not get rounded

I am trying to get a rounded EditText.

My EditText in layout is like

<FrameLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_marginLeft="10dp"
    android:layout_marginRight="10dp" >

    <EditText
        android:id="@+id/EditTextSearch"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:background="@drawable/edit_round"
        android:padding="5dip"
        android:singleLine="true" >

        <requestFocus />
    </EditText>

    <ImageView
        android:id="@+id/searchBtn"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="right"
        android:src="@android:drawable/ic_menu_search" />
</FrameLayout>

and the drawable I am using as EditText background is like

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

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

<corners
    android:bottomLeftRadius="12dp"
    android:bottomRightRadius="12dp"
    android:topLeftRadius="12dp"
    android:topRightRadius="12dp" />

</shape>

In my XML graphical layout, my edittext looks fine and rounded, but in emulator and also in device it does not look like that?

Does anyone have any idea why could that be?

Thanks

Upvotes: 0

Views: 371

Answers (2)

Siddharth Lele
Siddharth Lele

Reputation: 27748

Remove the android:padding="10dp" attribute to make the drawable look like this. I just tested it and removing the padding attribute shows the rounded corners just fine.

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

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

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

    <corners
        android:bottomLeftRadius="12dp"
        android:bottomRightRadius="12dp"
        android:topLeftRadius="12dp"
        android:topRightRadius="12dp" />

</shape>

To add padding to the Shape Drawable, notice the padding attribute added in the code above.

The proof lies in the pudding: ;-)

Device Screenshot:

enter image description here

Emulator Screenshot:

enter image description here

Upvotes: 1

andr
andr

Reputation: 16064

You didn't provide the stroke element, so you probably just don't see the background (since it's only a white fill!). When you change the background or add a stroke, it should be visible.

Add:

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

And poof! The rectangle is visible :) BTW The padding isn't the issue - it's simply ignored.

Upvotes: 0

Related Questions