【问题标题】:Attaching Click-Handler to canvas.drawRect() Object将 Click-Handler 附加到 canvas.drawRect() 对象
【发布时间】:2014-02-26 06:15:04
【问题描述】:

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

游戏板是一个 6 x 8 的矩形网格。我有一个扩展View 的类GameBoard。在这里,我重写了onDraw(Canvas canvas) 方法并通过一堆canvas.drawRect(30,30,80,80,paint) 调用来绘制棋盘。

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

或者我只是坚持做垫子来确定给定点在哪个矩形中?

【问题讨论】:

    标签: android


    【解决方案1】:

    您可以尝试在onTouch() 中使用rect.contains(int x, int y) 来查找它。

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

    SO 回答:“在您的 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?

    【讨论】:

    • 哦,我明白了。所以我会使用 `canvas.drawRect(rectObject, paint) 并将 Rect 对象存储在某处。从字面上看,与.NET 完全相同。谢谢哥们!
    猜你喜欢
    • 2020-10-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-09-12
    • 2018-01-08
    • 1970-01-01
    相关资源
    最近更新 更多