发现具有软件导航栏的Android设备的真实屏幕尺寸(以像素为单位)

4
我需要提前知道屏幕的确切尺寸,不包括软件导航栏。我正在使用andengine创建游戏。
我们希望完全支持新的Nexus系列(4、7和10)。
根据许多人指出的这个页面,软件导航栏的大小应为48dp。
然后,使用这篇优秀的stackexchange文章中的信息,我收集了计算软件导航栏大小的公式:px = dp * (ppi / 160) 根据官方网站,Nexus 7具有216 ppi屏幕。
软件导航栏应该是:48 * (216 / 160) = 64.8 ≈ 64px
我们有一个Nexus 7平板电脑,软件导航栏为75px。
这意味着ppi值要么是(75 * 160) / 48 = 250
要么
dp大小实际上是(75 / 216) * 160 = 55.555... ≈ 55dp 那么它是哪个呢?
此外,4.2 Android SDK带有一些预制的AVD。其中包括Nexus 7。在那里,软件导航栏的大小报告为64px...
我不是在询问这些设备的尺寸,我只是可以在Google(或搜索stackexchange)中查找这些数字。没有购买该设备,是否不可能确定设备的屏幕尺寸?
此外,我想补充一下,我正在使用以下方法获取屏幕尺寸:
WindowManager windowManager = (WindowManager) getSystemService(WINDOW_SERVICE);
Display display = windowManager.getDefaultDisplay();
DisplayMetrics screenSize = new DisplayMetrics();
display.getMetrics(screenSize);
CAMERA_WIDTH = screenSize.widthPixels;
CAMERA_HEIGHT = screenSize.heightPixels;

你是说像素尺寸而非物理尺寸,对吗?能否把标题稍微改一下以避免混淆呢 :)? - dumbfingers
1
Nexus 7拥有hdpi/tvdpi屏幕,其大小是mdpi的1.5倍,而Nexus 4/Galaxy Nexus则拥有xhdpi屏幕,因此其大小为2倍。因此,在N7上的48dp栏将为481.5=72px,在N4/GN上将为482=96px。 - dumbfingers
Galaxy Nexus拥有一个720x1184像素的屏幕,没有状态栏,屏幕的完整高度为1280像素。因此状态栏占用96像素。GN的屏幕宽度为360dp,高度为592dp,不包括状态栏,状态栏高度为48dp。 - dumbfingers
除了它不是72像素。它是75像素。它的ppi不在hdpi范围内,而是在mdpi / tvdpi范围内。 - Bjorninn
然后根据 https://plus.google.com/105051985738280261832/posts/6eWwQvFGLV8, Nexus 7 的像素密度应为 213 而不是 216,因此宽度应为 48*(213/160)= 63.9≈64px。至于你的问题,我也很想知道答案 :) - dumbfingers
好的,我已经对Nexus 7进行了截屏,导航栏高度为64像素,不是75或72。 - OMA
2个回答

3
比迟到总比不来得好。我一直在寻找这样的东西,第二个链接是这个问题,但第一个链接是http://www.emirweb.com/ScreenDeviceStatistics.php
例如:
Nexus 4
1280 x 768像素(640 x 384 dp)/ xhdpi / 正常屏幕 纵向细节
导航栏高度:96像素(48 dp) 标题栏高度:96像素(48 dp) 状态栏高度:50像素(25 dp) 内容视图:1038 x 768像素(519 x 384 dp) 横向细节
导航栏宽度:84像素(42 dp) 标题栏高度:80像素(40 dp) 状态栏高度:50像素(25 dp) 内容视图:638 x 1196像素(319 x 598 dp)
我相信这会很有用。

这正是我正在寻找的。谢谢! - Greg Owen

0

软件导航栏高度为48dp。

xhdpi下96px/ xxhdpi下144px/ 我认为在hdpi手机上你不会找到它,但它应该是72px。


通知栏高度似乎为25dp(Android 4+)。

hdpi下38px / xhdpi下50px / xxhdpi下75px


它会给你以下信息: 1134像素 @ xhdpi(@1280像素高度)/ *1701像素* @ xxhdpi(@1920像素高度)/ 可用空间。

我不理解你在这里尝试表达什么。我的问题是与Nexus 7有关,它应该有一个64px的导航栏,但当我在代码中检查时,报告的值为75px。 另外,Nexus 7是一种tvdpi设备。 - Bjorninn

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接