我想在Play商店中部署我的应用程序,用于所有密度的小型普通手机。
android:screenDensity
元素的<screen>
属性没有xxhdpi
和xxxhdpi
密度作为预定义值。
我应该将值480
和560
用于相应的缺失密度吗?
或者我可以使用它吗?
<supports-screens android:smallScreens="true"
android:normalScreens="true"
android:largeScreens="false"
android:xlargeScreens="false"/>
这是否涵盖了所选屏幕尺寸的所有密度?
答案 0 :(得分:1)
在<supports-screens>
代码中,将android:largeScreens
和android:xlargeScreens
的值设置为false不会使您的应用无法使用这些屏幕尺寸。它只会在这些屏幕尺寸上为您的应用启用屏幕兼容模式。
来自Android开发人员doc:
android:largeScreens
指示应用程序是否支持更大的屏幕外形。大屏幕被定义为比“普通”手机屏幕大得多的屏幕,因此可能需要对应用程序部分进行一些特别注意以充分利用它,尽管它可能依赖于系统调整大小以填充屏幕。 这个版本的默认值实际上在某些版本之间有所不同,因此如果您始终显式声明此属性,则更好。请注意,将其设置为“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发布商文档的this article,其中介绍了如何仅向手机提供应用。
答案 1 :(得分:0)
我会选择第二种选择;指定支持的屏幕,然后可能添加anyDensity =&#34; true&#34;:
<supports-screens android:smallScreens="true"
android:normalScreens="true"
android:largeScreens="false"
android:xlargeScreens="false"
android:anyDensity="true"/>
没有必要设置xxhdpi
和xxxhdpi
。
然后始终使用模拟器在不同的屏幕尺寸和密度上测试您的应用。