Android中的7英寸平板电脑 - 屏幕尺寸限定符

时间:2012-06-04 22:42:53

标签: android blackberry-playbook kindle-fire

我开始在一些7英寸Android机型上测试我的应用程序时遇到了一种奇怪的行为,我想知道其他人是否发现了同样的问题以及人们推荐的解决方案。

以下是详细信息:

该应用程序具有完整的平板电脑支持,使用布局的限定符触发。 xlarge设备进入平板电脑模式,屏幕上显示多个片段。

对于较新的Android版本,还有一些值设置变量,使用sw600dp限定符以及xlarge来更改流上的UI。

问题:

我现在正在测试Kindle Fire和RIM BlackBerry Playbook,并且还希望支持即将推出的Google Nexus平板电脑(或其他任何产品)以及其他7英寸外形设备。

剧本和火都有7英寸的屏幕和1024x600的屏幕分辨率。

然而,剧本似乎欺骗Android认为它是一个xlarge设备,而火不会这样做。

平板电脑和标准用户界面都可以正常工作,但平板电脑模式更好,可以在7英寸设备上使用。但是,如果我将布局推入大限定符中以便在火上获得平板电脑模式,我也会得到它,例如在Note或其他相当小的设备上。

使用Android 4x我可以使用sw600dp和其他限定符,但旧版本呢?我假设7英寸设备应该像平板电脑一样,但是例如注意..

此方案的最佳做法是什么?我对剧本报道xlarge的观察是否正确?

1 个答案:

答案 0 :(得分:3)

  

然而,剧本似乎欺骗Android认为它是一个xlarge设备,而火不会这样做。

设备制造商可以选择设备在尺寸和密度方面所涉及的存储桶。对于像RIM和亚马逊这样的制造商来说,这个数字增加了一倍,他们不想要Play商店,因此不必遵守Play商店所要求的任何特定兼容性要求,所以欢迎他们在Google的指导下嗤之以鼻。

  

此方案的最佳做法是什么?

我不能告诉你“最好的”。

但是,如果您希望覆盖某些布局以使用特定大小的特定设备,我会尝试(假设您将用于正常情况的布局称为R.layout.main):

步骤1:创建res/layout/main_funky.xml作为符号链接或指向res/layout-xlarge/main.xml的链接(同样适用于-land等)。

步骤2:在您的Java代码中,无论您在何处引用R.layout.main(例如onCreateView()的{​​{1}}),都要决定是否加载Fragment或{{ 1}}取决于R.layout.main数据,以按模型检测这些奇怪的设备。由于R.layout.main_funky是您的正常android.os.Build布局之一,因此依赖于窗口小部件的所有代码都不受此选择的影响。

步骤3:在您的特定情况下,将MMPD(魔法Maven小精灵粉尘)添加到步骤#1和#2 ......: - )

  

我对剧本报道xlarge的观察是否正确?

我买了一本Playbook,确定RIM的发行模式......令人不快,并且做了最低限度的书籍章节。我没有尝试查看它是R.layout.main_funkymain还是其他内容。

话虽如此,NOOK Tablet IIRC仍然受此影响(声称是-large而不是-xlarge)。

我希望谷歌Nexus平板电脑,如果这样的事情能够实现,能够正确地兑现大小的存储桶,再加上运行足够新的-xlarge和亲属的Android版本。

相关问题