Ich versuche, die Pixelbreite/Höhe des Geräts zum Platzieren von Elementen und Kartierung Berührungsereignisse auf dem Bildschirm zu bekommen, aber nicht den gewünschten Effekt (beachten Sie unten rechts) bündig mit dem Boden rechts):Android getDisplayMetrics() gibt keine genaue Anzeigegröße zurück
// screen size
DisplayMetrics metrics = Resources.getSystem().getDisplayMetrics();
float ScrDensity = metrics.density;
int metricHeight = metrics.heightPixels;//
int metricWidth = metrics.widthPixels;//
Log.i("AllMetrics", metrics.toString());
// temp
int rightButton_diameter = 100;
int rightButton_xpos = metricWidth - rightButton_diameter;
int rightButton_ypos = metricHeight - rightButton_diameter;
Wo AllMetrics zurück:
DisplayMetrics{density=2.0, width=720, height=1184, scaledDensity=2.0, xdpi=320.0, ydpi=320.0}
ich stelle fest, dass die retu rned height unterscheidet sich auch von den im Virtual Device Manager (API 19, Android 4.4) aufgeführten 720x1280 und die x/y-Positionen der Berührungsereignisse scheinen genau zu den gezeichneten Elementen zu passen (dh der anklickbare Bereich der Schaltfläche ist derselbe wie wo) Es wird gezeichnet)
Ist dies ein Konfigurationsfehler oder verwende ich die falsche Methode zum Abrufen der Bildschirmposition?
height = 1184 da es nicht Statusbar Höhe enthält, die 96 ist, geben diese zwei Zahlen zusammen 1280, die physikalische Bildschirmhöhe ist – pskink
BTW was genau wollen Sie erreichen? – pskink
Legen Sie einfach die Dinge auf den Bildschirm für den Anfang. Ich bemerke, wenn ich ab 0,0 zeichne, ist es bündig mit der oberen linken Seite. Sollte die Statusleiste die 69 nicht ersetzen? Ansonsten fehlt nur Höhe vom Boden und nicht von oben. – Gavin