我正在开发一款具有SurfaceView,SurfaceHolder,Canvas等标准模式的安卓游戏。在这个游戏中,我将在画布上绘制多个位图,如果他们被触摸我想知道。我知道我可以覆盖SurfaceView的onTouchEvent(),并可以线性遍历我的所有项目以确定触摸坐标是否包含我的一个位图的区域,但我想知道我是否可以让自己更轻松。
这是我的问题: 我可以在android.View的屏幕下方处理绘制我的位图的类,将它们附加到我的SurfaceView并在它们上面注册点击监听器,这样我就不必经历自己确定点击的过程了吗?如果我自己将视图(位图)绘制到画布上,那么点击侦听器是否准确?
此外,我是否会因为浏览android视图层次结构并使android完成我不想要的工作而使得我的所有位图android视图遭受性能损失?
感谢。
答案 0 :(得分:0)
如果你想将普通的android视图附加到SurfaceView,那么使用SurfaceView有什么意义呢!您将获得一个SurfaceView,以便您可以自己在表面上绘图,而不是让android视图系统为您完成。所以“你”必须自己跟踪你的触摸。
您可以参考纯粹基于OpenGL的AOSP Gallery2代码,并将其设计融入处理触摸中。