1

我想在 Play Store 中为各种密度的小型和普通手机部署我的应用程序。元素的android:screenDensity属性<screen>没有xxhdpixxxhdpi密度作为预定义值。我应该使用这些值480560相应的缺失密度吗?

或者我可以用这个吗?

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

这是否涵盖了所选屏幕尺寸的所有密度?

4

2 回答 2

1

在标记中,将和<supports-screens>的值设置为 false 不会使您的应用在这些屏幕尺寸下不可用。它只会在这些屏幕尺寸上为您的应用启用屏幕兼容模式。android:largeScreensandroid:xlargeScreens

来自 Android 开发者文档

安卓:大屏幕

指示应用程序是否支持更大的屏幕尺寸。大屏幕被定义为比“普通”手机屏幕大得多的屏幕,因此可能需要应用程序部分特别注意才能充分利用它,尽管它可能依赖于系统调整大小来填充屏幕。此默认值实际上在某些版本之间有所不同,因此最好始终明确声明此属性。请注意,将其设置为“false”通常会启用屏幕兼容模式。

安卓:xlargeScreens

指示应用程序是否支持超大屏幕尺寸。xlarge 屏幕被定义为比“大”屏幕显着更大的屏幕,例如平板电脑(或更大的东西),并且可能需要应用程序方面特别小心才能充分利用它,尽管它可能依赖于调整大小由系统填满屏幕。此默认值实际上在某些版本之间有所不同,因此最好始终明确声明此属性。请注意,将其设置为“false”通常会启用屏幕兼容模式。

如果您想让您的应用仅适用于手机,请将以下内容添加到您的清单中:

<compatible-screens>
    <!-- all small size screens -->
    <screen android:screenSize="small" android:screenDensity="ldpi" />
    <screen android:screenSize="small" android:screenDensity="mdpi" />
    <screen android:screenSize="small" android:screenDensity="hdpi" />
    <screen android:screenSize="small" android:screenDensity="xhdpi" />
    <screen android:screenSize="small" android:screenDensity="480" />
    <!-- all normal size screens -->
    <screen android:screenSize="normal" android:screenDensity="ldpi" />
    <screen android:screenSize="normal" android:screenDensity="mdpi" />
    <screen android:screenSize="normal" android:screenDensity="hdpi" />
    <screen android:screenSize="normal" android:screenDensity="xhdpi" />
    <screen android:screenSize="small" android:screenDensity="480" />
</compatible-screens>

带有的条目android:screenDensity="480"是为了支持 xxhdpi 存储桶。

查看 Android 开发者文档的这篇文章,其中解释了如何让您的应用程序仅适用于手机。

于 2016-06-20T20:20:48.207 回答
0

我会选择第二种选择;指定支持的屏幕,然后可能添加 anyDensity="true":

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

不需要设置xxhdpiand xxxhdpi。然后始终使用模拟器在不同的屏幕尺寸和密度上测试您的应用程序。

于 2016-03-04T12:38:47.347 回答