Ich versuche, ein genaues Lineal auf Android für jedes Gerät zu erstellen, und ich habe ein Problem festgestellt. Grundsätzlich sind meine Messungen für meine zwei verschiedenen Geräte zu weit entfernt. Ich habe erwartet, dass dies der Fall ist, aber nicht für den Grad, dass es passiert.Genaueste Messungen möglich - Android
Zeit für onTouchEvent drucke ich nur die x-Position in Zoll mit dem folgenden Code
DisplayMetrics metrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(metrics);
float x = event.getX()/metrics.xdpi;
System.out.println(x);
return true;
und ich folgende Ergebnisse
Grundsätzlich bekommen (3,01 sollte 3.10 sein) , mein Emulator ist ständig 0,1 Zoll aus und meine Galaxie s5 steigt kontinuierlich um etwa 0,5 Zoll
Für diese resu lts, ich verwende eine Markerbreite von 1dp und einen Markerabstand von 8dp. Dies gibt mir die genauesten Ergebnisse auf meinem s5.
10dp ist 0,625 Zoll, das ist, wie weit ein Zoll zwischen jedem Marker getrennt werden sollte.
Trotz 1dp Breite und 8dp Trennung gibt mir genaue Ergebnisse auf meinem S5, 1dp Breite und 9dp Trennung (was es wahrscheinlich sein sollte) gibt mir perfekte Ergebnisse auf dem Android-Emulator. Bei meinem S5 sind die Messungen jedoch um 0,16 Zoll pro Zoll versetzt.
Ich bin ehrlich gesagt verloren, was zu tun ist. Ich möchte, dass dies zwischen allen Geräten so genau wie möglich ist.
Was seltsam ist, ist, dass es keinen zunehmenden Fehler gibt, wenn ich die Trennungsbreite von 8 bis 9 auf dem Emulator ändere. Mit 8 für jeden Zoll Marker steigt der Fehler um 0,1, aber mit 9 bekomme ich die genaue Antwort auf jeden Zoll. – bfergs