我正在尝试将 Canvas 对象保存在 onDraw() 方法中。这是因为我在 onDraw 方法中使用了 foreach 循环,导致:canvas.DrawText (textitem, x,y, textpaint);
(我必须这样做,因为我在蒙版区域周围绘制文本)
我现在正在尝试的是:
@Override
public void onDraw(Canvas canvas)
{
if (hasrun = false)
{
for(CustomTextViewDrawItem item : drawItemList)
{
canvas.drawText(item.Text, item.X, item.Y, textPaint);
}
if (eLabel.backgroundGradient != null)
{
canvas.drawPath(path, fillPaint);
}
canvas.save();
savedCanvas = canvas ;
}
else
{
canvas = savedCanvas;
}
hasrun = true;
super.onDraw(canvas);
}
调试时我看到它看起来不错,但出来是空的。什么是让这个工作的最佳方法?