android 图片左下角添加多行水印
时间: 2023-09-18 13:10:20 浏览: 89
android 添加图片水印
要在Android中将多行水印文字添加到图片的左下角,可以使用Canvas和Paint类。以下是一个示例代码:
```
Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.image);
Bitmap mutableBitmap = bitmap.copy(Bitmap.Config.ARGB_8888, true);
Canvas canvas = new Canvas(mutableBitmap);
Paint paint = new Paint();
paint.setColor(Color.RED);
paint.setTextSize(50);
String watermarkText = "This is a multi-line watermark text\nwith two lines";
String[] lines = watermarkText.split("\n");
int y = mutableBitmap.getHeight() - (lines.length * (int) paint.getTextSize()) - 50;
for (String line : lines) {
canvas.drawText(line, 50, y, paint);
y += paint.descent() - paint.ascent();
}
imageView.setImageBitmap(mutableBitmap);
```
在这个示例中,我们首先将要添加水印文字的图片加载到Bitmap中,然后创建一个可变的Bitmap,以便我们可以在其上绘制水印。接下来,我们创建一个Canvas对象,该对象将用于在Bitmap上绘制。我们还创建了一个Paint对象,该对象定义了水印文字的颜色和大小。
我们将水印文字存储在一个字符串中,并使用split()函数将其拆分为多行。我们使用一个循环来绘制每一行水印文字。我们使用y变量来控制每一行文字的位置,这里的y值计算方式为:图片高度减去水印文字高度再减去一些间距,以便水印文字不会完全靠近底部。我们使用drawText()函数在Canvas上绘制文字,并使用y变量来控制每一行文字的位置。最后,我们将修改后的Bitmap设置为ImageView的图像。
注意,在这个示例中我们默认水印文字是从左下角开始绘制的,如果需要从右下角开始绘制,可以将x值修改为mutableBitmap.getWidth() - textWidth - 50,其中textWidth为水印文字的宽度。
阅读全文