【问题标题】:Designing layouts for phones and tablets为手机和平板电脑设计布局
【发布时间】:2013-04-01 00:36:34
【问题描述】:

好的,我熟悉这个网站及其内容

http://developer.android.com/guide/practices/screens_support.html

但我还是有问题。

我正在为手机和平板电脑设计布局,从姜饼到果冻豆。

我从一个基本布局文件夹开始,并为 Galaxy nexus 手机设计了所有内容。现在我回去添加平板电脑。这里的一个问题是我应该使用 layout-xlarge/layout-large 还是 layout-sw600dp/layout-sw720dp?我猜最小的宽度是我应该使用的。

但这不是问题所在。 这个问题是我试图为 Galaxy Nexus (720x1280) 和 Nexus S (480x800) 做那种简单的事情。这些有很大的不同,但 eclipse 似乎并没有让我区分。

所以我只是想清楚我应该做些什么来做到这一点。这是我应该覆盖的设备吗?

布局-hdpi 布局-xhdpi layout-sw600dp(而不是 layout-large) layout-sw720dp(而不是 layout-xlarge)

这些 layout-hdpi 和 layout-xhdpi 会区分 Nexus S 和 Galaxy Nexus 的布局吗?

【问题讨论】:

  • Eclipse 不允许您区分的原因是因为尺寸主要影响布局和任何背景图像(如果它只是一个占据整个布局空间的大文件)。对于不占据整个屏幕的较小图像、图标和所有与可绘制相关的内容,请确保使用特定于密度的文件夹,并且在 ImageViews/Drawables/java 代码/中为这些可绘制对象使用独立像素/ xml。 Android 系统将负责其余的工作。

标签: android


【解决方案1】:

首先,layout-sw 基于dp,与密度无关的像素,而不是像素。您可以将dp 视为“实际大小”像素,即无论使用什么设备,1dp 都是相同的物理大小。

因此,具有 720x1280 像素屏幕的 Galaxy Nexus 只有 360x640 dp 分辨率,手机和更高的 sw600+ 文件夹之间没有重叠。

large/xlarge 存储桶将继续在所有平板电脑上工作,但如果您需要更细粒度的支持,或者只在 Android 3.2+ 设备上使用平板电脑布局,那么您只需要 sw--dp 文件夹。您也可以同时使用这两种方法,而无需使用参考文件复制/粘贴您的 XML,详细信息请参见下面的博客文章。

更多关于如何支持多屏的细节可以在Supporting Multiple Screens guide找到,你为什么要使用新的sw---dp存储桶背后的一些原因可以在on the Android Developers blog post announcing the feature找到。

【讨论】:

  • 好的,感谢您的澄清。我现在了解平板电脑的布局。但是我的手机仍然有问题。当我在 Eclipse 中构建布局时,我可以将视图从一个设备切换到下一个设备。我的布局 xml 中有一个来自布局文件夹(应该适用于 nexus 和 Galaxy nexus?)它在 nexus 上重叠。没有足够的垂直间距。在galaxy nexus上,一切都刚刚好,但是当我切换到nexus s时,无论出于何种原因,我都会重叠。我必须把这些分开,这样我就不会得到重叠,对吧?
  • @BigDX - 是的,通常所有手机都使用相同的布局。确保您的布局尽可能使用wrap_content - 这样它们将根据其内容自动增大大小。请记住,用户可以在系统级别覆盖某些内容(例如字体大小),因此您的布局需要足够灵活以支持它。如果您仍然遇到重叠问题,我会提出一个单独的问题并发布您的 XML。
【解决方案2】:

只需使用layout-largelayout-xlarge。当您正在开发布局并想知道它在特定设备上的外观时,只需更改视图,它就会从正确的文件夹中提取适当的 XML。

【讨论】:

  • 如果投反对票的人能解释为什么投反对票会更好。
  • 我刚做了。不是因为这是一个很好的答案,而是我不同意你得到的反对票。 :--)
猜你喜欢
  • 2013-01-18
  • 1970-01-01
  • 1970-01-01
  • 2014-06-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-07-27
  • 1970-01-01
相关资源
最近更新 更多