我正在创建一个绘图工具,用户可以在其中添加文本到图像。通过画布位置将文本绘制到位图时,未正确设置。
Paint paint = new Paint();
paint.setStyle(Paint.Style.FILL);
paint.setColor(Color.RED);
paint.setTypeface(tf);
paint.setTextAlign(Paint.Align.LEFT);
paint.setTextSize(30);
int xPos = layoutTextViewContainer.getLeft();
int yPos = layoutTextViewContainer.getTop();
canvas.drawText(text, xPos, yPos, paint);
油漆
Rect textRect = new Rect();
paint.getTextBounds(text, 0, text.length(), textRect);
textRect.offset(0, -textRect.top);
Canvas canvas = new Canvas(bm);
layoutTextViewContainer保存编辑文本。 屏幕截图以获得更多说明。 写入黑色文本,红色文本是嵌入图像
的预览答案 0 :(得分:2)
得到了解决方案。值应该与像素无关 在传递给drawText之前将xPos和yPos转换为如下所示
xPos = (int) (xPos / getResources().getDisplayMetrics().density);
yPos = (int) (yPos / getResources().getDisplayMetrics().density);
答案 1 :(得分:1)
使用Drawing缓存并将其保存到任何文件位置会更好。 在这种情况下,我们不必太在意定位。 将所有内容包装在一起,然后获取
view.getDrawingCache()