0

我读了这篇文章http://developer.android.com/guide/practices/screens_support.html

我对此不太清楚:我是否必须制作不同的 XML 布局来支持不同的屏幕尺寸?

也许有一个简单的例子以更容易理解的方式解释这一点?

4

4 回答 4

0

不,密度的重点是一种布局应该适用于所有手机和设备。这里有一个很好的例子来说明如何在布局中布局按钮。

请注意该链接上的视图之一android:layout_marginTop="94dp" 只要您使用 dp,您的布局就应该适用于所有设备。

另一种说法:您不必担心屏幕尺寸,只要:a)您始终以 dp 为单位测量距离,而不是像素 b)您始终以 sp 为单位测量字体大小,而不是像素 c)对于每个图像,您将不同大小的图像放入不同的资源文件夹(hdpi、xdhpi 等)

如果您遵循这些规则,那么一种布局在所有尺寸的屏幕上都应该看起来非常相似。

于 2013-06-18T03:37:08.507 回答
0

不,您不必为每个尺寸的屏幕提供布局。您只需为屏幕设置一种布局。但是通过利用资源系统,您可以在适当的地方提供布局的替代版本。例如,您可能需要一种用于手机的布局和另一种用于平板电脑的布局。

于 2013-06-18T03:40:40.513 回答
0

也许不是布局xmls,而是应该重复的dimen xmls。

有时,如果您不必精确到小像素,使用 dp 会有所帮助。

于 2013-06-18T03:41:35.370 回答
0

我对此不太清楚:我是否必须制作不同的 XML 布局来支持不同的屏幕尺寸?

不。做相对的陈述,例如android:layout_width="match_parent"。使用 9-patch 定义可拉伸图像。相应目录drawable中的文件密度和屏幕大小相关资源,例如drawable-xhdpi. 这将意味着以不同的分辨率多次提供相同的图像资源。ldpi是 的 33.33% xhdpimpdi是 50%,hdpi是 75%。xhpi与 iPhone Retina 相当:如果有人给你 iOS Retina 图像资源,你可以针对 Android 相应地缩小这些资源。

如果您试图保持向后兼容,那么您将不得不制作不同的 XML 布局的一个好时机。例如,android:layout_marginStart仅当 Google 开始担心从右到左的文本时,API 17 才可用。这将在旧设备上静默失败,而您必须提供相同的布局,layout-v10例如android:layout_marginStart替换为android:layout_marginLeft.

最后,将您的 Android 用户界面视为一个网页。您可以做出的唯一安全假设是您必须填充空间,不要假设您必须填充多少空间。

于 2013-06-18T04:30:11.480 回答