假设我在画布上绘制了一个位图图像或简单的圆圈。如何设置OnTouchListener以检查我的绘图是否已被触摸?由于我将在画布上绘制多个圆圈,我希望每个圆圈都有一些唯一的ID,以便我可以相应地工作。
答案 0 :(得分:1)
当您触摸屏幕时,获取x和y坐标。你已经知道了圆圈的中心。
//x and y are co-ordiantes when touched.
//center_x and center_y are co-ordinates of the center of the circle.
//R is the radius of the cirlcr
float dx = Math.abs(x-center_x);
float dy = Math.abs(y-center_y);
float R = radius ;//radius of circle.
boolean checkDistance(float dx,float dy,float R)
{
if(dx>R)
{
return false;//outside
}
else if(dy>R)
{
return false;//
}
else
{
return true;
}
}
答案 1 :(得分:0)
使用画布无法轻松完成此操作。您应该自己处理触摸事件,并根据坐标/尺寸/ z-index检查您触摸的圆圈。
但如果每个圆圈都是单一视图,那么你可以让事情变得更容易。在这种情况下,您将能够使用标准的android touch事件监听器。对于圆圈,您应该创建自定义视图类,在处理触摸时会考虑圆形。
答案 2 :(得分:0)
为什么你没有得到用户绘制坐标并将它们与你的圆坐标匹配..
如何捕获用户绘图坐标:
int x = (int) event.getX();
int y = (int) event.getY();