转换路径和重绘不起作用



我有一次创建的路径,并向其中添加了 Rect。

在某些情况下,我通过Path.offset(...)Path.transform(...)来抵消路径然后使我的画布无效以重新绘制路径。

但是路径并没有在新的地方重新绘制。

我使用 Path.computeBounds(...) 检查了路径边界,我看到矩形移动了。所以我不明白为什么Canvas.drawPath(...)没有在新的地方重新绘制路径。

我设法在新位置重新绘制路径的唯一方法是创建新路径并将转换后的路径添加到其中,但我真的不想每次都这样做。

m_objPath.offset(p_fltDx, p_fltDy);
//////////////////////////////  
// With this lines it makes the path redrawn in the right place - but why should i ??
Path objPath = new Path();
objPath.addPath(m_objPath);
m_objPath = objPath;
//////////////////////////////
m_objCanvas.invalidate();
.
.
.
m_objCanvas.drawPath(m_objPath, m_objPaint);

有什么建议吗?

我针对Android 4.1和Android 2.3测试了Path.offset(..)的问题:

  • 在安卓2.3上,offset(..)工作正常。
  • 在Android 4.1上,它无法显示路径的新位置。还是感动了!如果我返回主屏幕(三星上的中央硬件按钮)并再次启动应用程序 - 它会显示正确的位置。

因此,只需使用路径删除...

最新更新