將一個bitmap剪下成圓形的bitmap
阿新 • • 發佈:2019-02-18
/**
* 實現圓形頭像的處理
*
* @param bitmap
* @return
*/
public static Bitmap formatBitmap(Bitmap bitmap) {
// 圖片的寬度
int width = bitmap.getWidth();
// 圖片的高度
int height = bitmap.getHeight();
int r = width > height ? height : width;
// 建立一個畫布的背景
Bitmap backBitmap = Bitmap
.createBitmap(width, height, Config.ARGB_8888);
//新建一個畫布
Canvas canvas=new Canvas(backBitmap);
//建立畫筆
Paint paint=new Paint();
paint.setAntiAlias(true);
RectF rectF=new RectF(0, 0, r, r);
//先畫圓
canvas.drawRoundRect(rectF, r/2, r/2, paint);
//設定兩幅圖相交時的一個畫筆的處理模式
paint.setXfermode(new PorterDuffXfermode(Mode.SRC_IN));
//畫頭像
canvas.drawBitmap(bitmap, null, rectF, paint);
return backBitmap;
}
* 實現圓形頭像的處理
*
* @param bitmap
* @return
*/
public static Bitmap formatBitmap(Bitmap bitmap) {
// 圖片的寬度
int width = bitmap.getWidth();
// 圖片的高度
int height = bitmap.getHeight();
int r = width > height ? height : width;
// 建立一個畫布的背景
Bitmap backBitmap = Bitmap
.createBitmap(width, height, Config.ARGB_8888);
//新建一個畫布
Canvas canvas=new Canvas(backBitmap);
//建立畫筆
Paint paint=new Paint();
paint.setAntiAlias(true);
RectF rectF=new RectF(0, 0, r, r);
//先畫圓
canvas.drawRoundRect(rectF, r/2, r/2, paint);
//設定兩幅圖相交時的一個畫筆的處理模式
paint.setXfermode(new PorterDuffXfermode(Mode.SRC_IN));
//畫頭像
canvas.drawBitmap(bitmap, null, rectF, paint);
return backBitmap;
}