将Click-Handler附加到canvas.drawRect()对象

时间:2014-02-02 20:34:42

标签: android

我正在编写类似游戏的俄罗斯方块,我想知道是否有更简单的方法来跟踪点击次数。

游戏板是一个6乘8的矩形网格。我有一个扩展GameBoard的课程View。在这里,我覆盖onDraw(Canvas canvas)方法并通过一堆canvas.drawRect(30,30,80,80,paint)调用绘制电路板。

有没有一种简单的方法来挂钩处理程序,告诉我哪个矩形被点击了?在.net中,您可以使用rect.contains(Point p)。

或者我只是坚持做垫子找出给定点的矩形?

1 个答案:

答案 0 :(得分:2)

您可以尝试使用rect.contains(int x, int y)内的onTouch()进行查找。

Android文档:http://developer.android.com/reference/android/graphics/Rect.html#contains(int,int)

回答:“在你的onTouchEvent()中只捕获x和y值,你可以在Rect类中使用contains(int x, int y)方法。如果contains(x, y)返回true,那么触摸是在矩形内,然后只需创建意图并开始新活动。“

来自Allowing rectangle to be clickable - android

另外:Android: How to check if a path contains touched point?