2016-04-11 6 views
0

私はどのデバイスでもAndroid上に正確な定規を作成しようとしていますが、問題が発生しました。基本的には、2つの異なるデバイスで測定値があまりにも遠すぎます。私はこれが事実だと思ったが、起こっている程度ではないと思った。 最も正確な測定が可能 - Android

現在onTouchEventのために私は次のコード

DisplayMetrics metrics = new DisplayMetrics(); 
    getWindowManager().getDefaultDisplay().getMetrics(metrics); 
    float x = event.getX()/metrics.xdpi; 
    System.out.println(x); 
    return true; 

とインチでのx位置を印刷し、私は基本的に

(3.10でなければならない3.01)以下の結果

http://imgur.com/S85Kmsrを取得しています私のエミュレータは常に0.1インチオフで、銀河のs5は約0.5インチ上がり続けます

これらのresu lts、私は1dpのマーカー幅と8dpのマーカー間隔を使用しています。これにより、私のs5で最も正確な結果が得られます。

10dpは0.625インチで、各マーカー間でどれくらいの距離を分けるべきです。

1dpの幅と8dpの区切りで、私のS5、1dp幅と9dpの区切り(私はおそらくそうであるはずです)で正確な結果が得られますが、アンドロイドエミュレータで完璧な結果が得られます。しかし、私のS5では、測定値は1インチあたり0.16インチずれています。

私は正直に何をすべきか分からない。私はこれをすべてのデバイス間でできるだけ正確にしたいと思います。

答えて

0

エミュレータ上のすべての物について、実際のデバイスを信頼してください。しかし、正確な測定については、完全には得られません。 dpは1/160インチですが、実際のdpiはきれいではありません。銀河s5は432です.1 dpは2.7ピクセルです。つまり、8 dpは21.6ピクセルです。だから、あなたは0.6/21.6か2.7%減っています。

あなたの定規の中でエラーが増えているのを見ていると、それは修正されている可能性があります。しかし、それを修正するためにあなたのonDrawを投稿する必要があります。

+0

エミュレータで分離幅を8から9に変更すると、エラーが増えることはありません。各インチのマーカーごとに8を使用すると、エラーは0.1だけ上がりますが、9では1インチごとに正確な答えが得られます。 – bfergs

関連する問題