我试图获取设备的像素宽度/高度以放置元素并在屏幕上映射触摸事件但没有获得所需效果(注意右下方应该与右下方完全齐平):
// 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位置对于绘制的元素(即可点击的区域)似乎是准确的。按钮与绘制的位置相同)
这是配置错误还是我使用了错误的获取屏幕位置的方法?
答案 0 :(得分:2)
检查此代码对我有用
DisplayMetrics dm = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(dm);
int width = dm.widthPixels;
int height = dm.heightPixels;
在活动之外,你可以试试这个
((Activity) getContext()).getWindowManager().getDefaultDisplay().getMetrics(dm)
答案 1 :(得分:0)
要访问DisplayMetrics成员,请初始化如下对象:
DisplayMetrics metrics = new DisplayMetrics(); 。getWindowManager()getDefaultDisplay()getMetrics(指标);