将dimen资源定义到不同的屏幕

时间:2015-06-23 03:48:01

标签: android android-layout

我一直在进行大量的互联网搜索,以使活动布局适合多种屏幕尺寸。布局权重可以完成工作,但这不是我的要求。我想使用dp值来做到这一点。现在我知道您可以在dimendimen.xmlvalues-ldpivalues-mdpi文件夹中的values-hdpi文件中定义values-xhdpi资源ldpimdpihdpixhdpi类型的屏幕。

问题

我的每个活动布局都有一个标题(LinearLayout)。在ldpi设备上,高度为53dp。我在不同的dimen.xml文件中定义了不同的高度。例如mdpi我定义了60dp。它也有效。当我在5.1'' WVGA (480 x 800: mdpi)上测试时出现问题。这是一个mdpi屏幕,它应该从values-mdpi/dimen.xml选择高度,并且应该与任何mdpi屏幕相同。 但不是。我想知道为什么会这样。所有values-mdpi屏幕都不是mdpi文件夹?

2 个答案:

答案 0 :(得分:2)

我认为你应该根据你的屏幕要求尝试将文件夹名称从values- ..更改为值而不是值-sw360dp,values-sw480dp,values-sw600dp等等,而不是为每个屏幕添加不同的dimens.xml文件

答案 1 :(得分:1)

您无法通过屏幕大小来确定密度 - 某些设备声称它们只有一个密度,即使它们可能应该是较低(或更高)的密度。你唯一可以肯定的是它们会保持一致。这就是为什么你不在dp中布局所有内容的原因之一。

您说布局权重有效。使用它们。使用dps进行元素大小调整几乎总是错误的。