32

假设我想构建 2 组不同的仅平板电脑布局。一种用于 600dp(7" 平板电脑 1024x600)和一种用于 720dp(10" 平板电脑 1280x720 或 1280x800)

我了解使用 android 3.2 您现在可以指定平板电脑布局。我明白这一点,但如何在 Google Play 上指定这是一个仅限平板电脑的应用程序。

有这个 android:requiresSmallestWidthDp 来指定所需的最小最小宽度。很好,但稍后您可以阅读指南

注意:Android 系统不关注该属性,因此它不会影响您的应用程序在运行时的行为方式。相反,它用于为您的应用程序在 Google Play 等服务上启用过滤。但是,Google Play 目前不支持此属性进行过滤(在 Android 3.2 上),因此如果您的应用程序不支持小屏幕,您应该继续使用其他尺寸属性。

所以它不被系统使用,也不被Google Play使用......所以基本上它没用,对吧?

“如果您的应用程序不支持小屏幕,您应该继续使用其他尺寸属性。

行。还有什么尺寸属性?支持屏幕之一?Xlarge:屏幕至少为 960dp x 720dp 大:屏幕至少为 640dp x 480dp

1024x600 7" 平板电脑是一个“大”屏幕。所以我基本上必须为 640x480 res 设计一个布局。因为如果我希望我的应用程序可用于 2 种不同尺寸的平板电脑,我必须启用 large 和 xlarge屏幕。

所以我想我可以像这样构建两组不同的布局

res/layout-sw600dp/main_activity.xml   # For 7” tablets (600dp wide and bigger)
res/layout-sw720dp/main_activity.xml   # For 10” tablets (720dp wide and bigger)

并完全省略为较小的屏幕指定布局,但应用程序会在较小的屏幕上崩溃。这是一种阻止应用程序运行的方法,这肯定是不优雅的。

有没有办法让该应用程序仅适用于 Google-Play 上 600dp 及更大的屏幕?我很困惑。我想制作一个 640x480 手机无法在 Google-Play 上下载的仅限平板电脑的应用程序。我想我错过了一些非常明显的东西。

4

1 回答 1

52

要让您的应用仅针对在 Google-Play 中运行 ICS 的平板电脑进行过滤,您可以在 AndroidManifest 中执行此操作:

<supports-screens
        android:largeScreens="true"
        android:normalScreens="false"
        android:requiresSmallestWidthDp="600"
        android:smallScreens="false"
        android:xlargeScreens="true" />

 <uses-sdk
    android:minSdkVersion="14"
    android:targetSdkVersion="14" />

要获得 HoneyComb 平板电脑,您只需更改您的 minSdk

 <uses-sdk
    android:minSdkVersion="11"
    android:targetSdkVersion="14" />

因此,您现在所说的 Gingerbread (2.3) 及以下版本无法下载您的应用程序(因为它们不是平板电脑,也不是设计用于平板电脑,即使它已被黑客入侵)。

支持 HoneyComb Tablets (3.0)(因为 <3.2 忽略了 requiresSmallestWidth 属性)

没有手机运行蜂窝

支持 ICS 平板电脑,因为它确实会查看您的最小宽度属性

最后 ICS 手机不是因为我们说 ICS 使用了最小宽度属性

于 2012-05-10T19:27:17.050 回答