(Android)画像を円形に処理する

2805 ワード

AndroidがBitmapを円形に処理するのはよくありますが、よく見かける場合はユーザーのアイコンとして、Canvasがこの機能を実現するのを支援することができます.コードは以下の通りです.
 1 public static Bitmap toRoundCorner(Bitmap bitmap, int pixels) {
 2         Bitmap output = Bitmap.createBitmap(bitmap.getWidth(), bitmap.getHeight(), Config.ARGB_8888);
 3         Canvas canvas = new Canvas(output);
 4         final int color = 0xff424242;
 5         final Paint paint = new Paint();
 6         final Rect rect = new Rect(0, 0, bitmap.getWidth(), bitmap.getHeight());
 7         final RectF rectF = new RectF(rect);
 8         final float roundPx = pixels;
 9         paint.setAntiAlias(true);
10         canvas.drawARGB(0, 0, 0, 0);
11         paint.setColor(color);
12         canvas.drawRoundRect(rectF, roundPx, roundPx, paint);
13         paint.setXfermode(new PorterDuffXfermode(Mode.SRC_IN));
14         canvas.drawBitmap(bitmap, rect, rect, paint);
15         return output;
16     }

pixelsはピクチャの半径です