我正在尝试获取用于在屏幕上放置元素和映射触摸事件的设备的像素宽度/高度,但没有得到预期的效果(注意右下角的正方形应该与右下角完全齐平):
// 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}
我注意到返回的高度也与虚拟设备管理器(API 19,Android 4.4)中列出的 720x1280 不同,并且触摸事件的 x/y 位置似乎与绘制的元素准确(即按钮的可点击区域是与绘制位置相同)
这是配置错误还是我使用了不正确的获取屏幕位置的方法?