to Circular Big Drawable - Android Graphics

Android examples for Graphics:Circular Drawable

Description

to Circular Big 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 toCircularBigDrawable(Bitmap bitmap) {
        BitmapDrawable drawable = new BitmapDrawable(null,
                ToCircularBig(bitmap));// w  w w. j av  a  2 s .co  m
        return drawable;
    }

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

        final float roundPx = bitmap_width / 2;
        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);

        paint.setColor(0xffffffff);
        paint.setStrokeWidth(10);
        paint.setStyle(Paint.Style.STROKE);

        canvas.drawCircle(bitmap_width / 2, bitmap_width / 2,
                bitmap_width / 2 - 5, paint);// ?????
        return output;
    }
}

Related Tutorials