2016-04-22 50 views
1

在我的应用程序中,用户将2个手指放在屏幕上。我想计算这两个触点之间的距离,以厘米为单位。目前,我可以使用onTouchEvent中提供的x和y值来计算距离。但是那个距离不是物理距离。有什么建议么?Android:两个触摸位置之间的物理距离

回答

1

使用您计算出的像素间距xy您可以使用以下信息才能英寸返回距离:

public double getScreenDistance(double x1, double y1, double x2, double y2) { 
    DisplayMetrics dm = new DisplayMetrics(); 
    getWindowManager().getDefaultDisplay().getMetrics(dm); 
    double xDist = Math.pow(Math.abs(x1 - x2)/dm.xdpi, 2); 
    double yDist = Math.pow(Math.abs(y1 - y2)/dm.ydpi, 2); 
    return Math.sqrt(xDist + yDist); 
} 

然后由2.54转换为厘米乘刚。

+0

你的意思是'返回Math.sqrt(xDist + yDist);'? –

+0

是好的。编辑我的答案。 – dharms

+0

你能解释一下你的函数的参数吗?我很困惑。 –

相关问题