1

我正在创建一个扩展 View 的客户视图,并将此视图包含在布局 xml 文件中。但是,系统似乎不尊重我在布局 xml 文件中定义的高度。(视图放在 relativeLayout 中)

xml 文件如下所示:

<com.example.viewtest.MyView
android:layout_width="match_parent"
android:layout_height="140dp"
/>

然而,当我在手机上运行应用程序后,这个视图总是被赋予一个更大的高度值。我搜索了 Android 开发指南,我知道该系统并不总是尊重定义的尺寸。

但是,我现在感到困惑的是,视图中的总绘图高度小于 140,当我调试代码时,我发现 getHeight() 和 getMeasuredHeight() 都返回较大的值,在我的示例中是195.

我在 stackoverflow 和谷歌搜索,但我没有得到任何线索?有人可以帮我吗?我非常感激!

谢谢,钱

4

1 回答 1

1

140dp 的 layout_height 并不完全是 140。dp 是与密度无关的像素,因此它会根据设备的密度进行调整。所以高端设备上的 140dp 将是 280 像素。在您的情况下,您的设备密度为 195/140 ~ 1.4。所以你不能总是期望得到 140 像素作为高度。

话虽如此,您可以强制它们在像素方面具有相同的高度,但我建议不要这样做。这在不同的设备上看起来很奇怪。

希望这可以澄清事情。

于 2013-05-13T18:53:41.493 回答