to Circular Drawable - Android Graphics

Android examples for Graphics:Circular Drawable

Description

to Circular Drawable

Demo Code


//package com.java2s;

import android.graphics.Bitmap;

import android.graphics.Bitmap.Config;

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.graphics.drawable.BitmapDrawable;
import android.graphics.drawable.Drawable;

public class Main {
    public static Drawable toCircularDrawable(Bitmap bitmap) {
        BitmapDrawable drawable = new BitmapDrawable(null,
                ToCircular(bitmap));// w  w  w. ja v a2  s .  co m
        return drawable;
    }

    public static Bitmap ToCircular(Bitmap bitmap) {
        Bitmap output = Bitmap.createBitmap(bitmap.getWidth(),
                bitmap.getWidth(), Config.ARGB_8888);
        Canvas canvas = new Canvas(output);
        final int color = 0xff000000;
        final Paint paint = new Paint();
        final Rect rect = new Rect(0, 0, bitmap.getWidth(),
                bitmap.getWidth());
        final RectF rectF = new RectF(rect);

        final float roundPx = (bitmap.getWidth()) / 10;
        paint.setAntiAlias(true);
        canvas.drawARGB(0, 0, 0, 0);
        canvas.drawRoundRect(rectF, roundPx, roundPx, paint);
        paint.setColor(color);
        paint.setXfermode(new PorterDuffXfermode(Mode.SRC_IN));
        // paint.setStyle(Style.STROKE);
        // paint.setStrokeWidth(2);
        canvas.drawBitmap(bitmap, rect, rect, paint);
        return output;
    }
}

Related Tutorials