Я пытаюсь получить ширину/высоту устройства в пикселях для размещения элементов и отображения сенсорных событий на экране, но не получаю желаемого эффекта (обратите внимание, что нижний правый квадрат должен быть полностью заподлицо с нижним правым):
// 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;
Где AllMetrics возвращает:
DisplayMetrics{density=2.0, width=720, height=1184, scaledDensity=2.0, xdpi=320.0, ydpi=320.0}
Я заметил, что возвращаемая высота также отличается от 720x1280, указанной в диспетчере виртуальных устройств (API 19, Android 4.4), а положения x/y событий касания кажутся точными для нарисованных элементов (т. е. область нажатия кнопки там же, где и рисуется)
Это ошибка конфигурации или я использую неправильный метод получения положения на экране?