【问题标题】:Images for Different Screen sizes.?不同屏幕尺寸的图像。?
【发布时间】:2013-06-18 12:55:50
【问题描述】:

我看了文章http://developer.android.com/guide/practices/screens_support.html

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

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

【问题讨论】:

    标签: android android-layout


    【解决方案1】:

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

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

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

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

    【讨论】:

      【解决方案2】:

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

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

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

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

      【讨论】:

      • 制作了一个适用于 Galaxy S3 的应用程序。我已将所有图像保存在 xhdpi 中。所有的屏幕在普通尺寸的手机上看起来都很好,但是当我测试它的标签时......然后.......一切都顺利......我的意思是说不适合屏幕。
      • 假设我拍摄了一张 720*1280 xhdpi 的背景图片。其他文件夹的大小应该是多少。
      • ldpi/mdpi/hdpi/xhdpi 的比例为 3:4:6:8。有关不同尺寸的更多详细信息,请参阅发布的article OP。如果您没有工具,我推荐 Gimp 进行图像编辑。
      【解决方案3】:

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

      【讨论】:

        【解决方案4】:

        可能不是布局 xml,而是应该重复的维度 xml。

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

        【讨论】:

          猜你喜欢
          • 2015-02-28
          • 2018-12-19
          • 2011-04-21
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多