gpt4 book ai didi

Android DisplayMetrics 显示绝对大小随方向变化

转载 作者:行者123 更新时间:2023-11-29 15:53:28 24 4
gpt4 key购买 nike

有没有人注意到这个问题并解决了在两个方向上获得一致的绝对显示尺寸的方法?

示例,Nexus 5 (5.0.1):

  • 纵向:宽度 = 1080 高度 = 1776
  • 横向:宽度 = 1794 高度 = 1080

我原以为纵向的高度会与横向的宽度相匹配。最初怀疑状态栏,但是docs很清楚。无论如何,此示例中的状态栏高度在任一方向上均为 75px,示例中的差异为 18px。

以像素为单位显示宽度和高度的代码 fragment :

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
}

编辑2:

如果您想确保在 API 14 到 16 上获得正确的结果,请考虑遵循此答案及其评论 https://stackoverflow.com/a/11004877/2444099 .

关于Android DisplayMetrics 显示绝对大小随方向变化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29265200/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com