转换路径和重绘不起作用

时间:2013-10-11 22:45:11

标签: android canvas path

我有一个Path,我创建了一次,并为其添加了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);

有什么建议吗?

1 个答案:

答案 0 :(得分:0)

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

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

所以只需使用Path ...