在我的Android应用程序中,我的布局包含许多按钮和微调框。我还为单个屏幕尺寸(hdpi,xhdpi等)添加了不同的布局。问题是,当在模拟器中使用Nexus S
(指示为hdpi)测试我的layout-hdpi时,它看起来不错,但是当使用Nexus One
(也以hdpi指示)对其进行测试时,按钮却重叠了?
在布局中,所有尺寸均在dp
中!
所以我不应该在hdpi的两个设备上收到相同的结果吗?
最佳答案
我遇到了同样的问题,您应该做的是获取屏幕的高度:宽度比率并将其命名为好比率。
因此,您的ratio = height/width
然后不要以dp中的确切大小使用按钮或其他元素的大小,而应以元素在视图中所占部分的形式来使用该大小。
我想我在那里使您感到困惑,但这很容易,例如:
如果您要在屏幕的上半部分添加图像,请不要说height = 150dp或width = 200dp,则您的屏幕高度为h,因此图像高度为h / 2,宽度为h / ratio 。
这在横向模式下也可以使用,您不必在横向模式下找到按钮,因为它们不在屏幕上。