为Android 3.2声明平板电脑布局 - 轻微混乱

时间:2012-11-25 13:06:04

标签: android android-layout

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

  • 320dp:典型的手机屏幕(240x320 ldpi,320x480 mdpi,480x800 hdpi等。)
  • 480dp:像Streak(480x800 mdpi)这样的tweener平板电脑。
  • 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”单元实际上与尺寸相关,这样面向平板电脑的模板就不会显示在手机设备上。

那么,您是否介意分享您应用新方法的实用知识?

谢谢

2 个答案:

答案 0 :(得分: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转化为约9mm的物理尺寸(有一些变化)

近似:50dp =一根手指宽。

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


如何针对不同的屏幕尺寸进行不同的布局? (即电话与表格)

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

不同的dpi存储桶应该只关注图像。例如。用于drawable-hdpi文件夹中任意大小的高分辨率屏幕的高分辨率图像。

答案 1 :(得分:0)

S3的密度不是160。