我试图在我的应用程序开始时弄清楚我将在纵向和横向中使用的屏幕尺寸。
我可以使用Display.getRealSize()
获取实际显示尺寸,然后计算导航条高度(如果有)。
但是,在600dp
或更少的设备中,导航栏可以具有不同的高度(取决于方向),甚至可以在横向模式下向右移动。
我的应用程序在开始时需要知道这些参数(应用程序连接到连接时接收这些维度的云服务器 - 所以我真的需要在应用程序开始执行之前知道这些参数。)
我目前的解决方案是:
Resources res = Resources.getSystem();
id = res.getIdentifier("navigation_bar_height", "dimen", "android");
int navigation_bar_height = res.getDimensionPixelSize(id);
虽然这很有效,但使用android的内部资源绝不是一个好习惯。
有没有其他方法可以在不同方向知道屏幕的尺寸在旋转设备之前?
答案 0 :(得分:0)
获取设备的尺寸。代码
DisplayMetrics dm = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(dm);
final int height=dm.heightPixels;
final int width=dm.widthPixels;