在canvas Android中添加多个触摸侦听器

时间:2014-04-08 07:13:12

标签: android canvas drawing android-canvas ontouchlistener

假设我的画布中有多个绘图,如何在画布中单独为每个绘图添加触控侦听器?

我会有动态添加的不同图形,如星形,圆形,矩形等,我该如何处理它们?

我无法在SO中找到这个非常接近的问题Set touch listeners on canvas drawings,但它没有答案。

将不胜感激的帮助和建议。在此先感谢:)

1 个答案:

答案 0 :(得分:1)

实际上,您无法在画布图纸上添加任何触控倾听器。您必须在视图中添加侦听器,然后 onTouchEvent ,您将获得用户触摸的 x,y坐标,然后必须由您自己计算如果触摸位置是您的图纸

例如

@Override
public boolean onTouchEvent(MotionEvent event){
        int touchX, touchY;

    touchX = (int) event.getX();
    touchY = (int) event.getY();

    if ((touchX > (cntWidth / 2) && touchX < (scrnWidth - (cntWidth / 2)))) && ((touchY > cntHeight / 2 && touchY < (scrnHeight - (cntHeight / 2)))) {                      
        int col, row;

        // Here you will check

    }
}