【问题标题】:different layout parameters for different devices不同设备的不同布局参数
【发布时间】:2012-11-22 22:37:47
【问题描述】:

我在我的 xml 文件中创建了一个布局,并在活动顶部显示了一个 LinearLayout。我已将其宽度设置为fill_parent,将其高度设置为54dp。布局的高度在三星 Galaxy 等大屏幕设备上看起来不错,但在较小的设备上看起来太大了。无论如何,布局在不同的屏幕尺寸上会有不同的高度吗?我猜这可能是通过 dp、dip 等来实现的,但我不确定它们到底是做什么的

【问题讨论】:

标签: android android-layout


【解决方案1】:

制作 layout-normal-hdpilayout-normal-mdpilayout-normal-xhdpi 文件夹并复制相同的 xml这三个文件夹比根据设备在每个 xml 上设置不同的高度。这是遵循的标准技术。试试这个,你一定会得到想要的结果。

【讨论】:

  • 好的。但我有大约 15 个不同的布局文件,再创建 30 个将是一个非常乏味的过程。有没有其他更优雅的方法来解决这个问题
  • 不必创建所有的 xml 布局文件。您只需创建哪些布局是完全动态的,哪些是静态布局,您可以保留在默认布局文件夹中。
  • 我明白了。但问题是我在每个布局文件中都有这个布局。它有点像一个导航栏,告诉用户他在哪个屏幕上
  • 好的,所以你可以做的就是制作一个 xml,它只包含你的布局的导航部分,比如 navigation.xml,然后在你的布局文件中包含你需要的那个 xml 文件,方法是使用包括小部件,但请确保将此 navigation.xml 保存在所有不同的布局文件夹中。有了这个,您不需要将所有剩余的布局保留在所有文件夹中。试试这个。
  • 但我的导航栏对每个活动都有不同的文本。此外,有些活动在导航栏上有一个按钮,有些则没有
【解决方案2】:

希望对你有所帮助...

res/layout/my_layout.xml             // layout for normal screen size ("default")
res/layout-small/my_layout.xml       // layout for small screen size
res/layout-large/my_layout.xml       // layout for large screen size
res/layout-xlarge/my_layout.xml      // layout for extra large screen size
res/layout-xlarge-land/my_layout.xml // layout for extra large in landscape orientation


Low density Small screens QVGA 240x320 

res/layout-small-ldpi
res/layout-small-land-ldpi
Low density Normal screens WVGA400 240x400 (x432)

res/layout-ldpi
res/layout-land-ldpi
Medium density Normal screens HVGA 320x480

res/layout-mdpi
res/layout-land-mdpi
Medium density Large screens HVGA 320x480

res/layout-large-mdpi
res/layout-large-land-mdpi
High density Normal screens WVGA800 480x800 (x854)

res/layout-hdpi
res/layout-land-hdpi
Xoom (medium density large but 1280x800 res)

res/layout-xlarge
res/layout-xlarge-land

如有任何疑问,请评论我...

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-07-20
    • 1970-01-01
    • 1970-01-01
    • 2017-08-11
    • 2014-04-03
    • 2014-10-30
    • 1970-01-01
    • 2020-06-13
    相关资源
    最近更新 更多