Android ImageView 铺满文字水印

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
    }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值