2016-04-22 13 views
1

私のアプリでは、ユーザーは画面に2本の指を置くでしょう。私はセンチメートルで2つのタッチポイント間の距離を計算したいと思います。現在、私はonTouchEventで提供されているxとyの値を使って距離を計算することができます。しかし、その距離は物理的な距離ではありません。助言がありますか?Android:2タッチ位置間の物理的距離

答えて

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でちょうど乗算センチに変換します。

+0

あなたは 'return Math.sqrt(xDist + yDist);'を意味しますか? –

+0

はいいいえ。私の答えを編集しました。 – dharms

+0

あなたの関数のパラメータを説明していただけますか?よくわかりません。 –