如何在 canvas 上绘制多个文本
How to draw multiple texts on canvas
我已经创建了一个绘图应用程序,现在我正在尝试允许用户向绘图添加文本。文本将放置在屏幕上用户用手指触摸的任何位置。使用以下代码,可以在屏幕上绘制文本和绘图。但是,这只会执行一次。在我点击屏幕的那一刻,之前的文字消失了,新的文字出现在我当前的手指位置。
@Override
protected void onDraw(Canvas canvas) {
canvas.drawColor(canvasColor);
for(Pair<Path, Paint> p : paths){
canvas.drawPath(p.first, p.second);
}
canvas.drawPath(drawPath, drawPaint);
if(textCB && !pbCol)
{
tPaint = new Paint();
tPaint.setTextSize(textSize);
tPaint.setStyle(Paint.Style.FILL);
tPaint.setColor(tColor);
canvas.drawText(addText, tx, ty, tPaint);
}
}
如何才能允许在 canvas 上绘制多个文本?
好的,我找到了一种方法。绘制完文字后,我从getDrawingCache中得到位图,然后将位图绘制到canvas.
我已经创建了一个绘图应用程序,现在我正在尝试允许用户向绘图添加文本。文本将放置在屏幕上用户用手指触摸的任何位置。使用以下代码,可以在屏幕上绘制文本和绘图。但是,这只会执行一次。在我点击屏幕的那一刻,之前的文字消失了,新的文字出现在我当前的手指位置。
@Override
protected void onDraw(Canvas canvas) {
canvas.drawColor(canvasColor);
for(Pair<Path, Paint> p : paths){
canvas.drawPath(p.first, p.second);
}
canvas.drawPath(drawPath, drawPaint);
if(textCB && !pbCol)
{
tPaint = new Paint();
tPaint.setTextSize(textSize);
tPaint.setStyle(Paint.Style.FILL);
tPaint.setColor(tColor);
canvas.drawText(addText, tx, ty, tPaint);
}
}
如何才能允许在 canvas 上绘制多个文本?
好的,我找到了一种方法。绘制完文字后,我从getDrawingCache中得到位图,然后将位图绘制到canvas.