圆角图片工具类

来源:互联网 发布:js二维数组不合法的是 编辑:程序博客网 时间:2024/06/01 09:04
import android.graphics.Bitmap;
import android.graphics.Canvas;
import android.graphics.Paint;
import android.graphics.PorterDuff;
import android.graphics.PorterDuffXfermode;
import android.graphics.RectF;

/**
* Created by xiexincheng on 2016/7/18.
*/
public class CircularHeadUtils {
public static Bitmap toCircularHead(Bitmap bitmap) {
//取得图片的宽高
int width = bitmap.getWidth();
int height = bitmap.getHeight();
//正方形的边长(取宽和高中最短的作边长)
int r = width > height ? height : width;
//构建一个bitmap
Bitmap output = Bitmap.createBitmap(width, height, Bitmap.Config.ARGB_8888);
//new一个Canvas,在output上画图
Canvas canvas = new Canvas(output);
Paint paint = new Paint();
//正方形
RectF rectF = new RectF(0, 0, r, r);
//抗锯齿
paint.setAntiAlias(true);
//画圆角矩形(当x方向和y方向上的长度相等时,就是一个圆)
canvas.drawRoundRect(rectF, r / 2, r / 2, paint);
//设置当两个图形相交时的模式,为SRC_IN,代表保留相交部分的上层,去掉其余部分
paint.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.SRC_IN));
//将图片画在output上
canvas.drawBitmap(bitmap, null, rectF, paint);
return output;
}
}



/**
* 调用方法
*/
imageView = (ImageView) findViewById(R.id.image);
Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.mipmap.bit);
imageView.setImageBitmap(CircularHeadUtils.toCircularHead(bitmap));

0 0