对于正常使用,您可以使用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)
您应该使用Display.getRealSize(Point)来自此处的官方文档
显示区域以两种不同的方式描述.
应用程序显示区域指定可能包含应用程序窗口的显示部分,不包括系统装饰.
应用程序显示区域可以小于实际显示区域,因为系统减去诸如状态栏之类的装饰元素所需的空间.使用以下方法查询应用程序显示区域:getSize(Point),getRectSize(Rect)和getMetrics(DisplayMetrics).
实际显示区域指定包含系统装饰的内容的显示部分.即便如此,如果窗口管理器使用(adb shell am display-size)模拟较小的显示器,则实际显示区域可能小于显示器的物理尺寸.使用以下方法查询实际显示区域:getRealSize(Point),getRealMetrics(DisplayMetrics).
| 归档时间: |
|
| 查看次数: |
5615 次 |
| 最近记录: |