功能实现:在图片右下角 添加“XXX”文字,并设置半透明圆角背景 以及 10dp的文案边距

我们首先获取了原始图片 originalBitmap,然后创建了一个新的 textBitmap 用于绘制文字。我们使用 Canvas 来在 textBitmap 上进行绘制。

接着,我们创建了一个 Paint 对象 textPaint 用于绘制文字,并设置了文字颜色、大小、透明度和样式。

然后,我们计算了文字的位置和边距,并使用 drawRect() 方法在背景中绘制了一个半透明的矩形作为文字的背景。

最后,我们在指定的位置调用 drawText() 方法绘制了文本。

代码如下:

// 原始图片 bitmap
Bitmap originalBitmap = BitmapFactory.decodeResource(getResources(), R.drawable.your_image);

// 创建一个空白的 Bitmap 用于绘制文字
Bitmap textBitmap = originalBitmap.copy(Bitmap.Config.ARGB_8888, true);
Canvas canvas = new Canvas(textBitmap);

// 在画布上绘制原始图片
canvas.drawBitmap(originalBitmap, 0, 0, null);

// 创建一个 Paint 对象用于绘制文字
Paint textPaint = new Paint();
textPaint.setColor(Color.WHITE);
textPaint.setTextSize(30);
textPaint.setAlpha(200); // 设置半透明
textPaint.setStyle(Paint.Style.FILL);

// 创建一个 Rect 对象,用于确定文字的位置和边距
Rect textBounds = new Rect();
String text = "XXX";
textPaint.getTextBounds(text, 0, text.length(), textBounds);
int padding = dpToPx(10); // dp 转换为像素
int margin = dpToPx(10);
int x = originalBitmap.getWidth() - textBounds.width() - padding - margin;
int y = originalBitmap.getHeight() - padding - margin;

// 绘制带有圆角背景的矩形
int cornerRadius = dpToPx(20); // 设置圆角半径
RectF rectF = new RectF(x - padding, y - textBounds.height() - padding, originalBitmap.getWidth() - margin, originalBitmap.getHeight() - margin);
Paint rectPaint = new Paint();
rectPaint.setColor(Color.BLACK);
rectPaint.setAlpha(150);
canvas.drawRoundRect(rectF, cornerRadius, cornerRadius, rectPaint);

// 在指定位置绘制文本
canvas.drawText(text, x, y, textPaint);

// 将绘制好的图片显示出来,或者保存到文件中
imageView.setImageBitmap(textBitmap);
  • 9
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值