我知道如何通过扩展 View 和覆盖 OnDraw 然后计算新坐标并重新绘制我的球来拖动球。 如果我在该 View 中有数百个形状并且需要整个 View 与所有形状一起移动怎么办?为每个形状重新计算似乎不可行。 在 Iphone 上,我可以在 View 内绘制一堆东西,然后移动整个 View ,它负责为我绘制 View 内的东西。我只需要重新计算 View 的坐标,然后为 View 内的所有内容设置位置。 这在 Android 上可行吗?
谢谢, 史蒂文
最佳答案
使用 Canvas.translate()
方法来偏移在您的 onDraw()
处理程序中绘制的所有内容。
根据光标移动或其他方式跟踪翻译偏移量,并在调用 translate()
时使用这些偏移量。
您可以使用 Canvas.scale()
来实现类似的效果来处理双指缩放。
不要忘记使用 save()
和 restore()
将 Canvas
恢复到原来的状态!
如果您只想在另一个 View 中移动一个 View ,只需调整顶部/左侧属性并调用 Invalidate()
。如果它是一个复杂的布局,请在 RelativeLayout
中执行所有操作并使用 LayoutParams
定位所有内容。
关于android - 如何移动/拖动包含一堆形状的整个 android View ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3320298/