今回はAndroidでImageViewをソースコードで丸くしたいなと思いまして、対応しました。
私のメモレベルです。
よかったら参考にしてもらえると幸いです。
Javaの場合
Javaをご利用しているは、こちらを参考してください。
https://android.benigumo.com/20140324/imageview-%E3%82%92-%E7%B0%A1%E5%8D%98%E3%81%AB-%E8%A7%92%E4%B8%B8-%E3%81%AB%E3%81%99%E3%82%8B/
Kotlinの場合
下記の関数を導入します。
fun getCroppedBitmap(bitmap: Bitmap): Bitmap? {
val width = bitmap.width
val height = bitmap.height
val rect = Rect(0, 0, width, height)
val rectf = RectF(0F, 0F, width.toFloat(), height.toFloat())
val output = Bitmap.createBitmap(width, height, Bitmap.Config.ARGB_8888)
val canvas = Canvas(output)
val paint = Paint()
paint.setAntiAlias(true)
// ここで丸みをつけます。「2.toFloat()」の数字を大きくするほど、
// 丸みが小さくなります。この状態だと円のように切り抜けます。
canvas.drawRoundRect(rectf, width / 2.toFloat(), height / 2.toFloat(), paint)
paint.setXfermode(PorterDuffXfermode(PorterDuff.Mode.SRC_IN))
canvas.drawBitmap(bitmap, rect, rect, paint)
return output
}
これを実際に使う場合の例
var bmp = BitmapFactory.decodeByteArray(it, 0, it.count())
this.getCroppedBitmap(bmp)?.let {
bmp = it
}
holder.writerImageView.setImageBitmap(
Bitmap.createScaledBitmap(
bmp, holder.writerImageView.getWidth(),
holder.writerImageView.getHeight(), false
)
)
以上になります。
12月ごろからAndroid開発もするようになりました。
こんな感じで今後もメモを残していきたいと思いますmm