Android:2个触摸位置之间的物理距离

时间:2016-04-22 20:22:46

标签: android

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

1 个答案:

答案 0 :(得分: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。