在我的应用中,用户将2个手指放在屏幕上。我想以厘米计算这两个触点之间的距离。目前,我可以使用onTouchEvent
中提供的x和y值来计算距离。但那距离不是物理距离。有什么建议吗?
答案 0 :(得分:1)
使用您计算的像素距离x
和y
,您可以使用以下内容以英寸为单位返回距离:
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。