假设我的onDraw()方法中有两个圆圈。
protected void onDraw(Canvas canvas) {
canvas.drawCircle(redX, redY, redRad, redPaint);
canvas.drawCircle(cx, cy, rad, p);
}
通过View
类onTouchEvent()
提供的方法永远不要理解我使用过的变量如果它是单独的,我可以对一个圆圈进行操作,但是如果我希望他们有一个虽然它们处于相同的onTouchEvent()
方法,但是onDraw()
分开,是否可能?最好的方法是什么?
答案 0 :(得分:0)
我不认为这是可能的,因为onTouchEvent是视图类的方法,您只能覆盖它一次。 您唯一能做的就是覆盖ontouchEvent,然后从触摸位置,您可以找到您正在触摸的区域并执行您需要执行的操作。
@Override
public boolean onTouchEvent(MotionEvent event) {
if (event.getAction() == MotionEvent.ACTION_DOWN) {
upCell = -1;
xPos = event.getX();
return true;
} else if (event.getAction() == MotionEvent.ACTION_UP) {
xPos = event.getX();
} else if (event.getAction() == MotionEvent.ACTION_MOVE) {
} else if (event.getAction() == MotionEvent.ACTION_CANCEL) {
}
return super.onTouchEvent(event);
}
答案 1 :(得分:0)
您需要存储每个对象的位置&每次调用此视图的触摸事件时检查重叠。
下面给出了一个示例(假设您的对象是圆圈):
plt.show(block=True)