1

我正在使用 API 10。

我想让我的布局在所有设备上看起来都一样。我可以通过使用LinearLayoutwith来实现weights。它完美地工作。如下图所示,这正是我想要实现的目标,并且效果很好:

在此处输入图像描述

但是出现的问题有两个:

  • 1)由于嵌套权重,我收到性能低下的警告。
  • 2)我无法使动画超出父LinearLayout的范围,如下图所示:

在此处输入图像描述

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

在此处输入图像描述

这是一团糟,完全不能接受,原因有二:

  • 1) 屏幕可能具有一定的密度,例如 hdpi,但它们因设备而异,具有一定的屏幕尺寸。
  • 2)当我使用相对于元素的 dp 单位时,例如:从父级顶部开始,我提供的值因屏幕大小而异。它不像线性布局那样按百分比。

那么,我从这里去哪里?我从研究中得出结论,唯一的(或不是?)解决方案是为不同的密度和屏幕尺寸制作不同的布局。喜欢res/layout-mdpi-large/my_layout.xml等等。但是,如何根据屏幕尺寸计算相对组件的尺寸和距离的 dp?我必须求助于这个列表吗?这些都是设备吗?:

在此处输入图像描述

任何提示、最佳实践、工作流程指南等等?

4

0 回答 0