1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
|
/** * 转换图片成圆形 * @param bitmap 传入Bitmap对象 * @return */ public static Bitmap toRoundBitmap(Bitmap bitmap) { int width = bitmap.getWidth(); int height = bitmap.getHeight(); float roundPx; float left,top,right,bottom,dst_left,dst_top,dst_right,dst_bottom; if (width <= height) { roundPx = width / 2 ; top = 0 ; bottom = width; left = 0 ; right = width; height = width; dst_left = 0 ; dst_top = 0 ; dst_right = width; dst_bottom = width; } else { roundPx = height / 2 ; float clip = (width - height) / 2 ; left = clip; right = width - clip; top = 0 ; bottom = height; width = height; dst_left = 0 ; dst_top = 0 ; dst_right = height; dst_bottom = height; } Bitmap output = Bitmap.createBitmap(width, height, Config.ARGB_8888); Canvas canvas = new Canvas(output); final int color = 0xff424242 ; final Paint paint = new Paint(); final Rect src = new Rect(( int )left, ( int )top, ( int )right, ( int )bottom); final Rect dst = new Rect(( int )dst_left, ( int )dst_top, ( int )dst_right, ( int )dst_bottom); final RectF rectF = new RectF(dst); 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, src, dst, paint); return output; } |
全站熱搜
留言列表