假设我的画布中有多个绘图,如何在画布中单独为每个绘图添加触控侦听器?
我会有动态添加的不同图形,如星形,圆形,矩形等,我该如何处理它们?
我无法在SO中找到这个非常接近的问题Set touch listeners on canvas drawings,但它没有答案。
将不胜感激的帮助和建议。在此先感谢:)
答案 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
}
}