【问题标题】:Declaring Tablet Layouts for Android 3.2 - mild confusion为 Android 3.2 声明平板电脑布局 - 轻度混淆
【发布时间】:2012-11-25 13:06:04
【问题描述】:

根据this guide's chapter px = dp * (dpi / 160)that 布局规范从桶(物理尺寸以英寸为单位)更改为“dp”单位,因此:

  • 320dp:典型的手机屏幕(240x320 ldpi,320x480 mdpi,480x800 hdpi 等)。
  • 480dp:类似于 Streak (480x800 mdpi) 的补间平板电脑。
  • 600dp:7 英寸平板电脑 (600x1024 mdpi)。
  • 720dp:10 英寸平板电脑(720x1280 mdpi、800x1280 mdpi 等)。

由于“dp”值取决于“px”和“dpi”值,因此:dp = px / (dpi / 160) - 高分辨率的手机设备不可能从 w600dp 文件夹中获取布局吗?

例如:三星galaxy s3 dp = 1280 / (303 / 160) = 670;三星 Galaxy s2 dp = 800 / (217 / 160) = 592。所以,galaxy s3 将采用“面向平板电脑”的模板,对。可以吗,特别是如果平板电脑版本包含更多元素并且整体界面人体工程学会在 s3 的情况下受到平板电脑布局的影响?为什么不坚持展示桶呢?

您可能会建议使用“sw”键,但我只是想确保这些“dp”单位实际上与尺寸相关,这样面向平板电脑的模板就不会显示在手机设备上。

那么,您介意分享您在应用新方法方面的实践知识吗?

谢谢

【问题讨论】:

标签: android android-layout


【解决方案1】:

dpdip 是(屏幕)密度无关像素。令人困惑的部分是提到了 pixel。它实际上是一个类似于厘米或英寸的单位。

每个设备为其屏幕定义一个 dpi 存储桶,例如 mdpi,即 160dpi。这意味着您可以在屏幕上找到 160 像素跨一英寸。它不是 100% 准确的,因为物理屏幕通常不完全是 160 dpi(或为存储桶定义的任何值)。但这是一个接近的值。

这意味着完美的 160dpi 屏幕上的 160dp 实际上是 160 像素。在具有完美 xhdpi (=320dpi) 屏幕的设备上,那些 160dp 将是 320 像素。 (px = 160dp * (320dpi / 160))

要与dp 合作,请不要以像素为单位。以英寸、毫米或您喜欢的单位进行思考。例如,针对 UI 元素推荐的 48dp rythm 解释了

平均而言,48dp 转换为大约 9 毫米的物理尺寸(有一些可变性)

近似计算:50dp = 一指宽。

这有望解释为什么典型的 320dp 手机屏幕总是小于 720dp 平板电脑屏幕,尽管较小的屏幕可以比较大的屏幕具有更多的像素。 dpi / 像素的东西已经计入 dp。


如何为不同的屏幕尺寸做不同的布局? (即电话与桌子)

使用screen size buckets (small, ..., xlarge) 进行布局。它们代表从小到大的物理屏幕。除非您需要调整非常特殊的情况,否则您不需要 sw600dp 等。

不同的 dpi 存储桶应该只关注图像。例如。 drawable-hdpi 文件夹中任何尺寸的高分辨率屏幕的高分辨率图像。

【讨论】:

    【解决方案2】:

    S3 的密度不是 160。

    【讨论】:

    • 是的,它是 303 - 你忽略了值
    猜你喜欢
    • 2011-05-10
    • 2011-10-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-12-16
    • 2012-09-23
    • 2014-06-18
    相关资源
    最近更新 更多