android 可用高度限定符

xkrw2x1b  于 2023-06-20  发布在  Android
关注(0)|答案(2)|浏览(157)

我不明白可用高度限定符是如何工作的。我正在使用:

  1. val displayMetrics = DisplayMetrics()
  2. windowManager.defaultDisplay.getMetrics(displayMetrics)
  3. val height = displayMetrics.heightPixels
  4. val width = displayMetrics.widthPixels
  5. Toast.makeText(this, "$height", Toast.LENGTH_LONG).show()

显示Nexus One的可用屏幕高度并获得800h。我没有一个底部导航栏或操作栏在屏幕上。我添加了一个高度为800的第二个维度,并设置了我的资源,但它不起作用。

w7t8yxp5

w7t8yxp51#

Nexus One在垂直方向上有800个物理像素,但它的像素密度也约为252 ppi(specs)。这意味着它在垂直维度上大约有507个与密度无关的“像素”dp),这是可用高度限定符使用的数字。
试试-h500dp,看看是否得到了你所期望的。
(Note此外,可用高度限定符使用设备的当前方向,因此如果您的Nexus One处于横向方向,则可用高度将少得多。

bn31dyow

bn31dyow2#

我相信大约有4-5种方法可以在设备上获得屏幕测量结果。

  • getMetrics()
  • getRealMetrics()
  • getDecorView()
  • getWindowVisibleDisplayFrame()

它们提供的结果略有不同,因此取决于您的用例。尝试最后一种方法,但最好阅读它们中的每一个,以了解它们的不同之处。

相关问题