我创建了一些自定义元素,我想以编程方式将它们放置在右上角(n顶部边缘的m像素和右边缘的像素).因此我需要获得屏幕宽度和屏幕高度,然后设置位置:
int px = screenWidth - m;
int py = screenHeight - n;
Run Code Online (Sandbox Code Playgroud)
如何获得screenWidth并screenHeight在主要活动?
对于正常使用,您可以使用DisplayMetrics类并获得"可渲染"大小,但我想弄清楚实际的物理屏幕大小,其中包括虚拟按钮高度.
在我的Galaxy Nexus上报告的尺寸无论我尝试的是1196x720,我可以使用什么来获得1280x720的物理尺寸?同样适用于Nexus 7,Nexus 4和Nexus 10设备.
更新:这是我现在使用的最终代码,包括修复:
//Activity A = this;
DisplayMetrics displayMetrics = new DisplayMetrics();
WindowManager wm = (WindowManager) A.getApplicationContext().getSystemService(Context.WINDOW_SERVICE);
Display disp = wm.getDefaultDisplay();
int API_LEVEL = android.os.Build.VERSION.SDK_INT;
if (API_LEVEL >= 17)
{
disp.getRealMetrics(displayMetrics);
}
else
{
disp.getMetrics(displayMetrics);
}
int Width = displayMetrics.widthPixels;
int Height = displayMetrics.heightPixels;
Run Code Online (Sandbox Code Playgroud)