【问题标题】:Android Layout Screen Size Conflicts (values-normal / values-large)Android 布局屏幕尺寸冲突(values-normal / values-large)
【发布时间】:2014-09-13 23:53:14
【问题描述】:

我正在开发简单的 Android 应用,但在支持多种屏幕尺寸时遇到了问题。我将支持普通和大屏幕,我有 2 个值资源:

  • values-normal(支持 3.5 inc 到 5.0 inc)
  • values-large(支持 5.1 到 5.7 之间)

我已经在这些资源中设置了尺寸,但是 5.1 inc 和 5.2 inc 的屏幕尺寸从 values-large 中获取值,因此视图变得很糟糕,它们应该从 values-normal 中获取值。

那么,我该怎么办?如何设置这些特定英寸以从正常值中获取值?

【问题讨论】:

    标签: java android android-layout


    【解决方案1】:

    如何设置这些特定英寸以从正常值中获取值。

    你不能。但是,您可以switch to the -swNNNdp, -wNNNdp, or -hNNNdp selectors,而不是normallarge,提供您自己的积分以切换到新资源。

    【讨论】:

      【解决方案2】:

      虽然 CommonsWare 和 Rustam 的答案是正确的,但我认为在您的情况下,更好的方法是将您的价值观管理为:

      价值观-hdpi
      价值观-mdpi
      值-xhdpi

      您可以在您的 IDE of chioce 中的不同预览设备上测试此维度。

      【讨论】:

      • 这能解决我的 5.1 和 5.2 英寸屏幕尺寸的问题吗?
      • 这取决于设备/模拟器的分辨率。 5.1 或 5.2 设备据说是 mdpi 分辨率,但它可能会因品牌和型号而异。我的建议是按照我提到的那样组织您的值并使用 IDE 中的预览面板测试结果
      • 澄清一下:这个答案假设 OP 实际上并不想像他说的那样为不同的屏幕尺寸拉不同的尺寸,而是为不同的像素密度。
      【解决方案3】:

      更好的方法是像这样创造价值资源:

      values-sw480dp
      values-sw600dp
      values-sw800dp
      values-sw1080dp
      

      【讨论】:

      • 这会解决问题吗?声明 values-normal 而不是 values-sw600 有什么区别?
      • @ertu.ctn sw600 是数字选择器的示例。定义了一组描述设备屏幕尺寸的数字,可用于选择资源或以其他方式调整您的 UI。描述设备屏幕尺寸的数字均以 'dp' 为单位。这主要用于平板电脑。 values-normal 是屏幕大小存储桶的示例。有基于“dp”单位的三个屏幕大小的桶。这是您应该用于非平板电脑设备的内容。欲了解更多信息,请看这里:android-developers.blogspot.com/2011/07/…
      猜你喜欢
      • 2012-08-26
      • 1970-01-01
      • 1970-01-01
      • 2012-06-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-10-22
      • 1970-01-01
      相关资源
      最近更新 更多