Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

how to make a rounded corners for an image in image view using XML layout in android

I have tried many times but i know that i am missing something,could you Guys please explain it.. Following is what, i have tried

    <ImageView
        android:id="@+id/Dicimage"
        android:layout_width="130px"
        android:layout_height="100px"
        android:src="@drawable/slang"
        android:background="@drawable/corner"
        android:padding="1dp"/>

Created Corner XML in resource folder

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

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

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

<corners android:radius="30px"/> 
   </shape>

What i am getting is, the border is only rounded rectangle but the image is still rectangle in shape

like image 836
Kalai Selvan.G Avatar asked Mar 23 '12 09:03

Kalai Selvan.G


4 Answers

No, that is not possible. You have to do it programmatically.

What you are doing is create rounded corners background and draw the drawable over it.

Here's the great article of how to create rounded corners image from Romain Guy: http://www.curious-creature.org/2012/12/11/android-recipe-1-image-with-rounded-corners/

like image 120
Pongpat Avatar answered Nov 18 '22 17:11

Pongpat


TRy this :

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

    <stroke android:width="3dp"
            android:color="#ff000000"/>

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

    <corners android:radius="30px"/> 
</shape>

Taken from this Post : Android ImageView with Rounded Corners not working

like image 28
Nibha Jain Avatar answered Nov 18 '22 17:11

Nibha Jain


Use that xml file as foreground

I mean, instead of

android:background="@drawable/corner"

Use this

android:foreground="@drawable/corner"
like image 39
Emre AYDIN Avatar answered Nov 18 '22 17:11

Emre AYDIN


You should add this code as some_foreground.xml to drawable folder.

<?xml version="1.0" encoding="utf-8"?>
    <layer-list xmlns:android="http://schemas.android.com/apk/res/android">
        <item>
            <shape android:shape="rectangle">
                <stroke
                    android:width="8dp"
                    android:color="@color/white" />
            </shape>
        </item>
        <item>
            <shape android:shape="rectangle">
                <corners android:radius="@dimen/padding_margin_8" />
                <stroke
                    android:width="8dp"
                    android:color="@color/white" />
            </shape>
        </item>
    </layer-list>

And then you can use this as foreground for your ImageView. You should add this like:

<ImageView
        android:id="@+id/event_image"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:foreground="@drawable/some_foreground"
        android:scaleType="centerCrop"
        android:src="@drawable/your_image" />
like image 2
Дмитрий Фоменко Avatar answered Nov 18 '22 17:11

Дмитрий Фоменко