我需要计算 MotionEvent 的中心,例如当用户用手指触摸屏幕时,我想知道 x,y 中的点是这个手指触摸的中心,我目前使用 motionEvent.getX()和motionEvent.getY(),但它似乎让我在手指触摸的最底部得到了一些点,这对我来说很糟糕......那么它是如何完成的?
问问题
1669 次
2 回答
0
利用
public static void midpoint(MotionEvent event, Point point) {
float x1 = event.getX(0);
float y1 = event.getY(0);
float x2 = event.getX(1);
float y2 = event.getY(1);
midpoint(x1, y1, x2, y2, point);
}
public static void midpoint(float x1, float y1, float x2, float y2, Point point) {
point.x = (x1 + x2) / 2.0f;
point.y = (y1 + y2) / 2.0f;
}
从视图的 onTouchEvent 调用 midpoint(MotionEvent event, Point point)。
于 2013-10-08T07:49:23.443 回答
0
在你的 OnTouchListener 中尝试这样的事情:
@Override
public boolean onTouch(View v, MotionEvent event)
{
float x = event.getX();
float y = event.getY();
if (event.getAction() == MotionEvent.ACTION_DOWN)
{
startX = x;
startY = y;
}
else if (event.getAction() == MotionEvent.ACTION_UP)
{
centerX = (startX + x) / 2;
centerY = (startY + Y) / 2;
}
return false;
}
其中 startX、startY、centerX、centerY 是可以从侦听器访问的字段变量。
于 2013-10-08T07:46:24.147 回答