Sunday 9 February 2014

Rounded Corner Image Example in Android

Hi all ....Now am going to share how to make an bitmap image rounded corner with the help of Android Canvas and Paint.


Step 1: activity_main.xml:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context=".MainActivity"
    android:background="#369589" >

 
 
  <ImageView
        android:id="@+id/image"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:layout_marginTop="40dp"
        android:adjustViewBounds="true"
        android:gravity="center"/>

</RelativeLayout>



Step 2: MainActivity.java:



package com.apc.roundecornerimage;

import android.app.Activity;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.Canvas;
import android.graphics.Paint;
import android.graphics.PorterDuff.Mode;
import android.graphics.PorterDuffXfermode;
import android.graphics.Rect;
import android.graphics.RectF;
import android.os.Bundle;
import android.widget.ImageView;

public class MainActivity extends Activity {


     private  int color;
     private  Paint paint;
     private  Rect rect;
     private  RectF rectF;
     private  Bitmap imageOut;
     private  Canvas canvas;
     private  float roundPx;
   
     ImageView image;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

image=(ImageView)findViewById(R.id.image);
     
                Bitmap bmp=BitmapFactory.decodeResource(getResources(), R.drawable.aps);
                 image.setImageBitmap(getRoundedRectBitmap(bmp,12));
    }

    public  Bitmap getRoundedRectBitmap(Bitmap bitmap, int pixels)
    {
        imageOut = Bitmap.createBitmap(bitmap.getWidth(), bitmap.getHeight(),               Bitmap.Config.ARGB_8888);
        canvas = new Canvas(imageOut);

        color = 0xff424242;
        paint = new Paint();
        rect = new Rect(0, 0, bitmap.getWidth(), bitmap.getHeight());
        rectF = new RectF(rect);
        roundPx = pixels;

        paint.setAntiAlias(true);
        canvas.drawARGB(0, 0, 0, 0);
        paint.setColor(color);
        canvas.drawRoundRect(rectF, roundPx, roundPx, paint);
     
     
        paint.setXfermode(new PorterDuffXfermode(Mode.SRC_IN));
        canvas.drawBitmap(bitmap, rect, rect, paint);
     
       /* paint.setXfermode(new PorterDuffXfermode(Mode.DST_IN));
        canvas.drawBitmap(bitmap, rect, rect, paint);*/

   
        return imageOut;
    }


}



Screen Shots :










                                       Note :   Place an Image in Android -drawable folder


                                     Source Code :    Click here to Download Source Code



                                                                   Happy Programming
                                                                           Cheers.....!!!






No comments:

Post a Comment