scr*_*pse 12 android android-manifest screen-size google-play
我的游戏在7英寸平板电脑上感觉最好,在10英寸平板电脑和5英寸三星Note尺寸设备上感觉非常好.对于像Nexus 4手机或S3这样大小的东西,它甚至可以玩得很开心.玩任何小东西都没有任何乐趣.在这种情况下,如何编写Manifest,以便它可以安装在从4.7英寸设备到10英寸平板电脑的任何设备上,同时受到小型手机的限制?
编辑
回过头来看,这个问题的原因是因为我发现Android开发者网站上的文档令人难以置信地混淆和冲突.让我们举一些例子来说明混乱的来源:
我们以几个不同的设备为例.
机器人3
查看支持屏幕的文档,我们可以推断......
但是,这个设备比我想要支持的设备要小得多......但是文档看起来像3个计数中的2个,这个设备有一个"大"屏幕.对这个术语没有明确的定义是一个4英寸的屏幕"大".现在,让我们走得更远......
Nexus 4
查看支持屏幕的文档,我们可以推断......
再一次,没有理智的定义是一个4.7英寸的屏幕"xlarge"...屏幕的大小可能只是足够大,使游戏愉快,但它是一个"中等"屏幕?一个"大"的屏幕?你怎么可能知道?
这两款手机都是"中型"吗?当Nexus"大"时,Droid会"中等"吗?为什么或者为什么不?如果Nexus是"大",那么这与7英寸平板电脑有什么不同,这也应该是"大?"
然后事实是文档声称支持屏幕/大小从3.2开始被弃用
但是,如果想要支持旧手机(假设适当的物理屏幕尺寸,以英寸为单位)和新平板电脑,或者如果它在树林中隐藏得很好,那么就没有明确指导如何使用它.有人可以清楚地说明 cretieria真正重要的是什么,为什么给定的设备适合给定的过滤器或失败?
我认为基于Google文档,这将满足您的要求(5"和更小):
<compatible-screens>
<screen android:screenSize="large" android:screenDensity="ldpi" />
<screen android:screenSize="large" android:screenDensity="mdpi" />
<screen android:screenSize="xlarge" android:screenDensity="ldpi" />
<screen android:screenSize="xlarge" android:screenDensity="mdpi" />
<screen android:screenSize="xlarge" android:screenDensity="hdpi" />
<screen android:screenSize="xlarge" android:screenDensity="xhdpi" />
</compatible-screens>
Run Code Online (Sandbox Code Playgroud)
或者使用它(4.7"和更小):
<supports-screens android:smallScreens="false"
android:normalScreens="true"
android:largeScreens="true"
android:xlargeScreens="true"
android:requiresSmallestWidthDp="536" />
Run Code Online (Sandbox Code Playgroud)
我推荐第二种方法,因为它更准确.
如何计算536?基于http://developer.android.com/guide/practices/screens_support.html,我们有(身高x宽度):
(720-480)/(7-4)= 80,480 +(80*0.7)= 536
并且不要担心"已弃用警告",因为新建议的方法适用于平板电脑应用程序(IMO),其中UI不是全屏的,屏幕底部和顶部的一些空间占用标题栏和/或后面,菜单等等按钮,而您的游戏可能以全屏模式运行.
请访问Google文档http://developer.android.com/guide/practices/screens_support.html#DeclaringTabletLayouts:
注意:使用这些限定符指定的大小不是实际的屏幕大小.相反,尺寸是以活动窗口可用的 dp单位为宽度或高度.Android系统可能会将某些屏幕用于系统UI(例如屏幕底部的系统栏或顶部的状态栏),因此某些屏幕可能无法用于您的布局.因此,您声明的大小应该特别关注您的活动所需的大小 - 系统会在声明为布局提供多少空间时考虑系统UI使用的任何空间.还要注意Action Bar被视为应用程序窗口空间的一部分,虽然您的布局没有声明它,因此它减少了可用于布局的空间,您必须在设计中考虑它.
不幸的是,没有办法根据设备的“物理”大小过滤掉设备,而这正是您想要的。
有两个原因。
为了供您参考,让我向您展示根据逻辑密度和屏幕像素数确定屏幕尺寸的内部逻辑。
| 归档时间: |
|
| 查看次数: |
6524 次 |
| 最近记录: |