我一直在进行大量的互联网搜索,以使活动布局适合多种屏幕尺寸。布局权重可以完成工作,但这不是我的要求。我想使用dp
值来做到这一点。现在我知道您可以在dimen
,dimen.xml
,values-ldpi
和values-mdpi
文件夹中的values-hdpi
文件中定义values-xhdpi
资源ldpi
,mdpi
,hdpi
,xhdpi
类型的屏幕。
问题
我的每个活动布局都有一个标题(LinearLayout
)。在ldpi
设备上,高度为53dp
。我在不同的dimen.xml
文件中定义了不同的高度。例如mdpi
我定义了60dp
。它也有效。当我在5.1'' WVGA (480 x 800: mdpi)
上测试时出现问题。这是一个mdpi屏幕,它应该从values-mdpi/dimen.xml
选择高度,并且应该与任何mdpi
屏幕相同。 但不是。我想知道为什么会这样。所有values-mdpi
屏幕都不是mdpi
文件夹?
答案 0 :(得分:2)
我认为你应该根据你的屏幕要求尝试将文件夹名称从values- ..更改为值而不是值-sw360dp,values-sw480dp,values-sw600dp等等,而不是为每个屏幕添加不同的dimens.xml文件
答案 1 :(得分:1)
您无法通过屏幕大小来确定密度 - 某些设备声称它们只有一个密度,即使它们可能应该是较低(或更高)的密度。你唯一可以肯定的是它们会保持一致。这就是为什么你不在dp中布局所有内容的原因之一。
您说布局权重有效。使用它们。使用dps进行元素大小调整几乎总是错误的。