画布drawtext定位

时间:2014-08-07 07:14:14

标签: android android-canvas drawtext

我正在创建一个绘图工具,用户可以在其中添加文本到图像。通过画布位置将文本绘制到位图时,未正确设置。

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保存编辑文本。 屏幕截图以获得更多说明。 写入黑色文本,红色文本是嵌入图像enter image description here

的预览

2 个答案:

答案 0 :(得分:2)

得到了解决方案。值应该与像素无关 在传递给drawText之前将xPos和yPos转换为如下所示

 xPos = (int) (xPos / getResources().getDisplayMetrics().density);
    yPos = (int) (yPos / getResources().getDisplayMetrics().density);

答案 1 :(得分:1)

使用Drawing缓存并将其保存到任何文件位置会更好。 在这种情况下,我们不必太在意定位。 将所有内容包装在一起,然后获取

 view.getDrawingCache()