【问题标题】:layouts for different screen sizes, why is default being picked?不同屏幕尺寸的布局,为什么选择默认?
【发布时间】:2012-11-23 07:42:40
【问题描述】:

我已经为小、大和超大屏幕尺寸创建了布局文件,但是当我在三星 S3 模拟器上加载我的应用程序时,分辨率为 720 x 1280,它仍然是正在使用的默认布局。

我不明白为什么 android 不使用我的特定布局文件。

我已将布局文件放置在文件夹布局下的layout-large、layout-small、layout-xlarge文件夹中。

希望有人能指出我做错了什么。

谢谢。

【问题讨论】:

  • S3 属于“正常”类别,因此使用默认值。
  • 720 x 1280 正常吗?据我所知,S2 480 x 800 也是正常的,对于它们来说似乎分辨率都有很大的提升。

标签: android eclipse


【解决方案1】:

您所指的屏幕尺寸存储桶自 Android 3.2(API 级别 13?)以来已被弃用。如果您的目标是更高版本的 Android,那么您应该使用“最小宽度”限定符来启用更精细的粒度控制。

例如,三星 Note 将利用旧的“layout-large”存储桶,但它不能很好地响应迷你或普通平板电脑布局。这些设备通常运行 Android 3.2 后(DELL Streak 和原始 Galaxy 10.1 选项卡除外)。为了区分这种情况,请提供layout-sw520-portlayout-sw520-land 资源文件夹并将布局放置在此处。可以对 Nexus7 类型的设备 (sw600) 等进行进一步的区分。请注意,屏幕上有保留像素(通知/操作栏等),因此物理最小宽度 DPI 并不是您的布局将响应的确切内容(尽管可以预测关闭)。

Diana Hackborn (hackbod) 写了一个 comprehensive blog post 主题,描述了改变背后的动机和它解决的各种问题(参见你的问题)。谷歌还汇总了一些关于设计多种配置的建议,作为其平板电脑驱动器的一部分。如果您遇到更多问题,请查阅 Android 开发指南。

【讨论】:

    【解决方案2】:

    三星 S3 属于“正常”类别。

    我发现 layout_weight="1" 和 layout_width="0dp" 极大地帮助我获得了可缩放到不同分辨率的布局,以防万一有人问这个问题,想知道为什么布局在某些区域无法缩放。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-10-22
      • 1970-01-01
      • 1970-01-01
      • 2011-12-14
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多