2

我有我正在创建一次的路径,并将 Rect 添加到它。

在某些事件中,我通过Path.offset(...)or偏移路径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);

有什么建议么?

4

1 回答 1

1

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

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

所以只需放弃使用路径...

于 2014-05-12T05:45:19.113 回答