android - 如何移动/拖动包含一堆形状的整个 android View ?

标签 android view

我知道如何通过扩展 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/

相关文章:

android - ARToolkit 中的虚拟按钮

android - iPad、androidPad 和 Windows 8/HTML 的单一来源?

android - 如何从ProfilePictureView中获取头像存入数据库

ios - 在 swift iOS 中管理用户登录 segues

ios - 我的 WebView (和任何 View )仅在一种情况下与我的侧边栏重叠 iOS swift

android - 在 Android cmake 构建中覆盖 android.toolchain.cmake

android - 使用 CardsUI 在 onContextItemSelected 中获取 ID

mysql - 如何通过 UNION 和子 SELECT 查询构建 MySQL View

swift - 如何在 Swift 中使用选择器 View 值?

backbone.js - 错误 : A "url" property or function must be specified,,除非指定了 url