private fun createLables(bitmap: Bitmap,text: String):Bitmap{
// 创建可变bitmap
val watermarkBitmap: Bitmap = bitmap.copy(Bitmap.Config.ARGB_8888, true)
// 创建Canvas,传递watermarkBitmap
val canvas = Canvas(watermarkBitmap)
// 设置文本属性
val textPaint = Paint()
textPaint.color = Color.RED
textPaint.textSize = 20f
// 计算旋转角度的弧度值
val rotateDegree = 342f
val radians = (rotateDegree * Math.PI / 180).toFloat()
val width = watermarkBitmap.width
val height = watermarkBitmap.height
val diagonal = sqrt((width * width + height * height).toDouble()).toInt() // 对角线的长度
textPaint.isAntiAlias = true;
val textWidth = textPaint.measureText(text);
// canvas.drawColor(0x00000000);
canvas.rotate(rotateDegree);
var index = 0
var fromX: Float
// 以对角线的长度来做高度,这样可以保证竖屏和横屏整个屏幕都能布满水印
var positionY = diagonal / 10
while (positionY <= diagonal) {
fromX = (-width + index++ % 2 * textWidth) // 上下两行的X轴起始点不一样,错开显示
var positionX = fromX
while (positionX < width) {
canvas.drawText(text, positionX, positionY.toFloat(), textPaint)
positionX += (textWidth * 2)
}
positionY += diagonal / 10
}
canvas.save();
canvas.restore();
return watermarkBitmap
}
Android ImageView 铺满文字水印
最新推荐文章于 2024-07-11 15:08:02 发布