将图片切成圆角,包括圆形

来源:互联网 发布:ipad上电视直播软件 编辑:程序博客网 时间:2024/05/16 15:02
//将图片切成圆形
    public static Bitmap toRound(Bitmap bm) {
int width = bm.getWidth();
int height = bm.getHeight();
Bitmap outbm = Bitmap.createBitmap(width, height, Config.ARGB_8888);
Canvas canvas = new Canvas(outbm);
Paint paint = new Paint();
paint.setAntiAlias(false);//设置是否去除锯齿

final Rect src = new Rect(0, 0, width, height);
final Rect dest = new Rect(0, 0, width, height);
final RectF rectF = new RectF(0, 0, width, height);

final float radius = width/2;

canvas.drawARGB(0, 0, 0, 0);

canvas.drawRoundRect(rectF, radius, radius, paint);
paint.setXfermode(new PorterDuffXfermode(android.graphics.PorterDuff.Mode.SRC_IN));
canvas.drawBitmap(bm, src, dest, paint);
return outbm;

}


/** 
* 获取圆角位图的方法 
* @param bitmap 需要转化成圆角的位图 
* @param pixels 圆角的度数,数值越大,圆角越大 
* @return 处理后的圆角位图 
*/  
public static Bitmap toRoundCorner(Bitmap bitmap, int pixels) {  
   Bitmap output = Bitmap.createBitmap(bitmap.getWidth(),  
           bitmap.getHeight(), Config.ARGB_8888);  
   Canvas canvas = new Canvas(output);  
   final int color = 0xff424242;  
   final Paint paint = new Paint();  
   final Rect rect = new Rect(0, 0, bitmap.getWidth(), bitmap.getHeight());  
   final RectF rectF = new RectF(rect);  
   final float 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);  
   return output;  
}

0 0