Android 使用RelativeLayout在所有设备上显示相同的布局

Android 使用RelativeLayout在所有设备上显示相同的布局,android,android-relativelayout,adt,mobile-devices,screens,Android,Android Relativelayout,Adt,Mobile Devices,Screens,我使用的是API 10 我想让我的布局在所有设备上看起来都一样。我可以通过使用线性布局和权重来实现这一点。它工作得很好。如下图所示,这正是我想要实现的目标,它工作得非常完美: 但出现的问题有两个: 1) 由于嵌套权重,我收到了性能低下的警告 2) 我无法制作超出父线性布局范围的动画, 如下图所示: 因此,我决定使用RelativeLayout进行布局。但主要的问题是,我无法在所有设备上获得相同的布局,比如线性布局和权重的使用。我花了两天时间寻找解决方案并阅读ADT文档。根据文档,我必须将

我使用的是API 10

我想让我的布局在所有设备上看起来都一样。我可以通过使用
线性布局
权重
来实现这一点。它工作得很好。如下图所示,这正是我想要实现的目标,它工作得非常完美:

但出现的问题有两个:

  • 1) 由于嵌套权重,我收到了性能低下的警告
  • 2) 我无法制作超出父线性布局范围的动画, 如下图所示:

因此,我决定使用
RelativeLayout
进行布局。但主要的问题是,我无法在所有设备上获得相同的布局,比如线性布局和权重的使用。我花了两天时间寻找解决方案并阅读ADT文档。根据文档,我必须将我的
图像视图缩放到
3:4:6:8:12
,以匹配
ldpi/mdpi/hdpi/xdpi/xxdpi
。于是我做了:我创建了相应的@drawble文件夹,按照文档中的说明重新调整了按钮的大小,并将它们放在匹配的文件夹中。结果是:

这是一片混乱,完全不可接受,原因有二:

  • 1) 屏幕可能具有一定的密度,例如hdpi,但是 不同的设备具有不同的屏幕大小
  • 2) 当我使用相对于元素的dp单位时,例如:from 在父级顶部,我提供的值因屏幕大小而异 大小这与线性布局中的百分比不同
那么,我该怎么办呢?我从研究中得出结论,唯一的(与否?)解决方案是针对不同的密度和屏幕大小制作不同的布局。比如
res/layout mdpi large/my_layout.xml
等等。但是如何根据屏幕尺寸计算尺寸和与相关组件的距离的dp?我必须求助于这个列表吗?这些都是设备吗


有什么提示、最佳实践、工作流指南吗?

他们搞砸了,不允许我们使用百分比,使用JAVA代码设置布局参数。