3

我正在开发一个具有 SurfaceView、SurfaceHolder、Canvas 等标准模式的 android 游戏。在这个游戏中,我将在画布上绘制多个位图,我想知道它们是否被触摸过。我知道我可以覆盖 SurfaceView 的 onTouchEvent() 并且可以线性地遍历我的所有项目以确定触摸坐标是否包含我的位图之一的区域,但我想知道我是否可以让自己更轻松。

这是我的问题:我是否可以拥有处理从 android.View 继承的在屏幕上绘制位图的类,将它们附加到我的 SurfaceView 并在它们上注册点击侦听器,这样我就不必自己完成确定点击的过程?如果我自己将视图(位图)绘制到画布上,点击监听器会准确吗?

此外,我是否会因为让我的所有位图 android 视图陷入困境而让 android 视图层次结构陷入困境并使 android 做我不想做的工作而遭受性能损失?

谢谢。

4

1 回答 1

0

如果您想将普通的 android 视图附加到 SurfaceView,那么使用 SurfaceView 有什么意义!你会得到一个 SurfaceView,这样你就可以自己在表面上绘图,而不是让 android 视图系统为你做这件事。所以“你”必须自己跟踪你的触摸。

您可以参考纯基于 OpenGL 的 AOSP Gallery2 代码,并将其设计用于处理触摸。

于 2014-11-14T12:09:02.143 回答