假设我在画布上绘制了位图图像或简单的圆圈。如何设置 OnTouchListener 以检查我的绘图是否被触摸?由于我将在画布上绘制多个圆圈,因此我希望每个圆圈都有一些唯一的 ID,以便我可以相应地工作。
问问题
2307 次
3 回答
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;
}
}
于 2013-03-14T16:01:06.063 回答
0
为什么你没有得到用户绘图坐标并将它们与你的圆坐标匹配..
如何捕捉用户绘图坐标:
int x = (int) event.getX();
int y = (int) event.getY();
于 2013-07-11T14:14:00.870 回答
0
你不能轻易地用画布做到这一点。您应该自己处理触摸事件,并根据坐标/大小/z-index 检查您触摸的圆圈。
但是,如果每个圆圈都是一个视图,您可以让事情变得更容易。在这种情况下,您将能够使用标准的 android 触摸事件侦听器。对于圆形,您应该创建自定义视图类,该类在处理触摸时会考虑圆形。
于 2013-03-14T15:59:11.983 回答