我正在创建一个绘图工具,其中用户添加文本到图像。当文本通过画布绘制到位图时,位置设置不正确。
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保存编辑文本。屏幕截图,以获得更多澄清。黑色文本被写入,红色文本是嵌入图像的预览。

发布于 2014-08-07 08:29:34
找到解决办法了。在传递到xPos之前,这些值应该是独立于像素的,转换如下所示的yPos和drawText
xPos = (int) (xPos / getResources().getDisplayMetrics().density);
yPos = (int) (yPos / getResources().getDisplayMetrics().density);发布于 2014-08-09 05:14:58
更好的做法是使用绘图缓存并将其保存到任何文件位置。在这种情况下,我们不必为定位而费心。将所有布局封装在一个布局中,然后获取
view.getDrawingCache()https://stackoverflow.com/questions/25176321
复制相似问题