作为我项目的一部分,我正在创建一个基本的绘图应用程序。我使用Canvas和Bitmap绘制线条,形状和文本。现在我正在实现撤销功能。我使用以下方法实现它。
撤消功能
public void onClickUndo() {
if (paths.size() > 0) {
undonePaths.add(paths.remove(paths.size() - 1));
invalidate();
}
}
onDraw()
方法
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
canvas.drawBitmap(mBitmap, 0, 0, canvasPaint);
canvas.drawPath(mPath, drawPaint);
for (Path p: paths) {
int curColor = colorsMap.get(p);
drawPaint.setColor(curColor);
canvas.drawPath(p, drawPaint);
}
}
其中paths
是用于保存路径的列表,colorsMap
是用于保存路径及其颜色的地图。使用path.addCircle()
,path.lineTo()
函数绘制线条和其他形状,以便将路径添加到路径列表中。
我正在使用drawText()
方法编写文本。所以我无法将其添加到路径列表中。
我的问题是,是否有任何方法可以将文本绘制为路径或将文本转换为路径,以便将其添加到paths
列表中?
或撤消所写文字的其他方法?