チャット用のアバターのアイコン画像の角を丸くしようと思っていて、当初は、Y.A.M の 雑記帳: Android ImageViewの領域を角丸にする方法
を見て、こちらを試してみようと思っていたのだけれども、さらに検索していたら、コードで実装している方がいた。
ImageView を 簡単に 角丸 にする
試してみたら、簡単に実装できたので参考にさせていただいた。
private static Bitmap GetCroppedBitmap(Bitmap bitmap) { int width = bitmap.Width; int height = bitmap.Height; Rect rect = new Rect(0, 0, width, height); RectF rectf = new RectF(0, 0, width, height); Bitmap output = Bitmap.CreateBitmap(width, height,Bitmap.Config.Argb8888); Canvas canvas = new Canvas(output); Paint paint = new Paint(); paint.AntiAlias = true; canvas.DrawRoundRect(rectf, width / 5, height / 5, paint); paint.SetXfermode(new PorterDuffXfermode(PorterDuff.Mode.SrcIn)); canvas.DrawBitmap(bitmap, rect, rect, paint); return output; }
C#にするとこんな感じ。
イメージ的には、角丸にしない場合とした場合は以下。
おもしろいな。こう見ると1dpxあけたほうがいいとかいろいろあるなぁ。
アプリとしてデザイン面での工夫点でした。