我不明白可用高度限定符是如何工作的。我正在使用:
val displayMetrics = DisplayMetrics()
windowManager.defaultDisplay.getMetrics(displayMetrics)
val height = displayMetrics.heightPixels
val width = displayMetrics.widthPixels
Toast.makeText(this, "$height", Toast.LENGTH_LONG).show()
显示Nexus One的可用屏幕高度并获得800h。我没有一个底部导航栏或操作栏在屏幕上。我添加了一个高度为800的第二个维度,并设置了我的资源,但它不起作用。
2条答案
按热度按时间w7t8yxp51#
Nexus One在垂直方向上有800个物理像素,但它的像素密度也约为252 ppi(specs)。这意味着它在垂直维度上大约有507个与密度无关的“像素”(
dp
),这是可用高度限定符使用的数字。试试
-h500dp
,看看是否得到了你所期望的。(Note此外,可用高度限定符使用设备的当前方向,因此如果您的Nexus One处于横向方向,则可用高度将少得多。
bn31dyow2#
我相信大约有4-5种方法可以在设备上获得屏幕测量结果。
它们提供的结果略有不同,因此取决于您的用例。尝试最后一种方法,但最好阅读它们中的每一个,以了解它们的不同之处。