是否有人注意到此问题并解决了在两个方向上一致地获得绝对显示尺寸的方法?
例如Nexus 5(5.0.1):
我本来以为肖像的高度将与横向的宽度匹配。最初怀疑状态栏,但文档清晰。无论如何,此示例中的状态栏高度在任一方向上均为75px,示例中的差异为18px。
显示宽度和高度(以像素为单位)的代码段:
DisplayMetrics displaymetrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(displaymetrics);
int height = displaymetrics.heightPixels;
int width = displaymetrics.widthPixels;
String dimensions = String.format("width = %d height = %d", width, height);
Log.v(TAG, dimensions);
假设根据您的日志记录显示为FullHD,则纵向占据144px(48dp)的高度,横向占据126px(42dp)的宽度(缩放比例为3,即xxhdpi)。我敢打赌它是带有“返回”,“主页”和“最近”按钮的导航栏。这足以选择布局。
如果需要全尺寸显示,可以从API 17获得以下代码:
Display display = getWindowManager().getDefaultDisplay();
Point size = new Point();
if (Build.VERSION.SDK_INT >= 17) {
display.getRealSize(size);
} else {
display.getSize(size); // correct for devices with hardware navigation buttons
}
如果要确保在API 14至16上获得正确的结果,请考虑遵循此答案及其注释https://stackoverflow.com/a/11004877/2444099。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句