【问题标题】:Android - How to create layout as generic as possible?Android - 如何创建尽可能通用的布局?
【发布时间】:2012-02-18 17:29:14
【问题描述】:

我在为我的应用程序创建通用布局时遇到了麻烦。正如预期的那样,它可以用于各种设备,我希望它能够正常工作。有几种方法可以解决这个问题,但我想创建一个 xml 文件(类似于 web.config 文件),并且在我的应用程序的最开始,我想获取设备的屏幕宽度和高度并计算每个控件的(textview、spinner ,按钮等)属性(例如边距,填充,宽度,高度......)根据这个宽度和高度,并将这些计算值保存到我的xml文件中。最后,我想从我的布局 xml 中获取这些值,因此我的布局的视觉效果将独立于设备,并且可以在每个设备上正常工作。这可以实现吗?我在互联网上找不到任何类似的解决方案。谁能帮帮我?

提前致谢。

【问题讨论】:

  • 我看不出这比使用 RelativeLayout 有什么好处...
  • 你没有考虑到大多数安卓设备都可以切换屏幕方向。

标签: android xml layout esri


【解决方案1】:

您可以使用RelativeLayout 和类似机制完成大部分操作,而无需对值进行硬编码。两遍动态布局系统正是针对您所描述的。

但是,当您需要更具体时,动态资源系统可以为您提供帮助。对于您在 res/drawable、res/layout、res/values 等中定义的所有内容,您可以通过使用正确格式限定同级目录来定义设备方向、像素密度、屏幕大小甚至语言的特定实现。在不同的文件夹中提供同名的资源,系统会根据运行环境决定使用哪个。

看看这个:

http://developer.android.com/guide/topics/resources/providing-resources.html

【讨论】:

    【解决方案2】:

    我不会使用自定义测量来动态设置布局参数。 Android 专门为您提供了多种功能来解决这个问题(包括提供多种图像资源,或特定于屏幕尺寸的布局)。

    我发现,您尝试使用硬编码值自定义 Android 布局的次数越多(如果您确实想设置特定参数,请始终使用 DP)。

    最重要的是,您不应该尝试重新发明轮子,而应该使用 Android 已经内置的精心设计的功能来完成您想要的。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-08-18
      • 1970-01-01
      • 2023-03-12
      • 1970-01-01
      • 1970-01-01
      • 2017-06-12
      相关资源
      最近更新 更多