gpt4 book ai didi

android - Android 中的 getSize() 是否包括状态栏的高度?

转载 作者:行者123 更新时间:2023-11-29 22:37:14 28 4
gpt4 key购买 nike

有没有办法判断 getSize() 是否包含状态栏的高度?从对几部不同手机的测试来看,它似乎在某些手机上有效,但在其他手机上无效,并且在尝试使布局中的所有内容正确对齐时令人沮丧。

在这个问题上花了一周时间并查看了 Google 的文档和 Stackoverflow 上的许多其他帖子(关于通过 getSize()getRealSize() 获取以像素为单位的屏幕尺寸) >、getMetrics(DisplayMetrics metrics)getRealMetrics(DisplayMetrics metrics) 等等……我还是一头雾水。

This picture is giving a better picture of the problem.

在某些手机上,根据上图,“Y/2”行应该恰好位于 size.y/2(导航栏和状态栏之间的屏幕的一半) ,但实际上 在中间:因此,我图片上的“非 X”距离等于“X - getStatusBarSize()”。

我必须补充一点,我在 XML 中使用了一个带有 innerRadiusRatio 2.1 的环形对象。但我不认为这是原因,因为一旦我使用下面的代码,它就可以在 getSize() 似乎包含状态栏高度的手机上运行:

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

// Screen dimensions
display = getWindowManager().getDefaultDisplay();
size = new Point();
display.getSize(size);

//Get the screen dimensions
maxWidth = size.x
maxHeight = size.y - getStatusBarSize();
}

private int getStatusBarSize() {
Resources resources = getResources();
int resourceId = resources.getIdentifier("status_bar_height", "dimen", "android");
if (resourceId > 0) {
return resources.getDimensionPixelSize(resourceId);
}
return 0;
}

虽然它在其他手机上仅与 maxheight = size.y 一起工作(不包括状态栏高度)。

在此先感谢大家的帮助!

最佳答案

我或多或少遇到过同样的问题,这可能会有所帮助:

// Get the size between the status & the navigation bars
Display display = getWindowManager().getDefaultDisplay();
Point size = new Point();
display.getSize(size);

// Real size of the screen (full screen)
Point realSize = new Point();
Display realDisplay = getWindowManager().getDefaultDisplay();
realDisplay.getRealSize(realSize);

//Get the screen dimensions
maxWidth = size.x;
maxHeight = size.y;

if (realSize.y - getNavBarSize() == size.y || realSize.y == size.y) {
Log.d(TAG, "onCreate: getSize() includes the status bar size");
maxHeight = size.y - getStatusBarSize();
}

关于android - Android 中的 getSize() 是否包括状态栏的高度?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59400777/

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