功能实现:在图片右下角 添加“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);

你可能感兴趣的:(android信息,android,java,android,studio)