0

ユーザーが画面上の円に触れる必要がある Android アプリを構築しています。ユーザーのタッチが円の中心からどれだけ離れているかを記録する必要があります。

このアプリを多くのデバイスで実行し、すべての結果を均一にしたいので、ピクセル距離ではなく物理的な距離を記録したいのです。たとえば、円の中心からのユーザーのタッチ距離が 15px の場合、これは、あるデバイスでは 0.5cm、別のデバイスでは 1cm の物理的な距離になる可能性があります (これらの数字はただの数字ですが、おわかりいただけると思います)。したがって、ピクセルではなく、物理的な測定値のみに頼ることができます。

では、タッチ距離を​​どのように記録すればよいでしょうか。このView.onTouchEventメソッドは、タッチ イベントの x と y をピクセル単位で提供します (私は推測しています)。そのため、円の中心からタッチまでの距離をピクセル単位で取得し、それをdpに変換します (そしてすべてを保存します) 。結果は dp 単位になります)? または、ピクセル距離をptに変換する必要があります。これは、どのデバイスでも同じ物理サイズであると想定されていますか? もしそうなら、どのように px から pt に変換しますか (これに対する答えがどこにも見つからないようです)?

4

1 に答える 1

0

DisplayMetrics を使用して画面サイズをピクセルで取得し、画面の DPI を取得し、幅と高さを dpi で割って幅と高さのインチ数を取得し、それを使用してピクセル距離を実際の単位に変換できます。 ..

それが理にかなっていれば。

DisplayMetrics へのリンク: http://developer.android.com/reference/android/util/DisplayMetrics.html

于 2012-11-20T01:55:09.433 に答える