如何使Android应用程序兼容平板电脑?

5
我开发了一款移动应用程序,并发布到Google Play。现在客户要求该应用程序与平板电脑兼容。我知道不同的drawable文件夹用于不同密度的设备。
我已经开始设计平板电脑界面,并通过另一个布局文件夹(命名为layout-large)完成了所有设计。
现在我的问题是:我需要为7英寸、9英寸和10英寸的屏幕分别设计平板电脑屏幕吗?还是针对任何平板电脑,都可以使用保存在layout-large文件夹中的屏幕设计?
我不确定上述事情,我甚至使用了另一个名为layout-sw720dp的文件夹,并为9英寸平板电脑进行了指定。在这里,我使用了一些不同的图像,因为我们有更多的空间。由于我只有一个7英寸平板电脑来测试它,当我测试时,从layout-large文件夹中使用的所有屏幕都很好。当我将apk文件发送给客户时,客户也只能看到layout-large文件夹的屏幕。
我搜索了很多关于此事的资料,但我发现只有单独使用布局,没有找到适合所有平板电脑或个别设计屏幕的内容。阅读Android教程后,我发现我们应该使用规范sw600dp、sw720dp。这意味着两者都应该存在,或者只需要一个还不清楚。
非常抱歉我的英语不好,这是我第一次进行移动应用程序的平板电脑兼容性设计。请在这方面提供帮助。
提前感谢。

一些7英寸设备使用大型文件夹布局,而另一些则使用sw600dp,这取决于设备。 - TNR
2个回答

2
我需要单独设计7英寸、9英寸和10英寸的平板电脑屏幕吗?
希望不需要,但这个问题很难抽象地回答。
对于任何平板电脑设备,保存在layout-large文件夹中的屏幕设计将被用于平板电脑。
是的。如果您没有提供res/layout-xlarge/目录,则-xlarge设备(例如10英寸平板电脑)将使用res/layout-large/。
阅读Android教程时,我发现我们应该使用sw600dp、sw720dp限定符。这意味着两者都应该有,还是只需要一个就足够了?
如果您愿意,可以使用它们。请注意,它们仅适用于Android 3.2及更高版本。

非常感谢您的回答,现在我的困惑已经消除了。我只想再澄清一点。在搜索时,我发现大型和超大型的限定符已经被弃用了。这是真的吗?如果是这样,那么我可以使用sw600dp、sw700dp。但问题是我的应用程序构建SDK是2.1,我读到sw600dp、sw700dp不适用于蜂窝前设备。我该如何解决这个问题呢? - user1797017
1
@NR2812:在Android中,“已弃用”意味着“我们有另一种解决方案,我们认为您应该考虑”。在-large和类似情况下,它们在Android 3.2中被弃用。然而,它们的替代品仅在Android 3.2中添加。对于运行Android 3.1及以下版本的设备,“已弃用”的原始桶是您唯一的选择,并且这些桶在Android 3.2及更高版本上也可以正常使用。我建议人们坚持使用旧的桶,直到Android 2.x消失,除非您对新的-swNNNdp系统有特定需求。 - CommonsWare

0

这个解决方案适用于所有安卓手机设备和平板电脑。

以下是相应的解决方案:

public String getScreenResolution()
    {
    int screenSize = getResources().getConfiguration().screenLayout &
    Configuration.SCREENLAYOUT_SIZE_MASK;
     switch(screenSize) {
    case Configuration.SCREENLAYOUT_SIZE_XLARGE:
    deviceResolutionString="tablet";
    // This will returns tablet , you can start your tablet activity from here 
     break;
    case Configuration.SCREENLAYOUT_SIZE_LARGE:
    deviceResolutionString="tablet";
    // This will returns tablet , you can start your tablet activity from here 
    break;
    case Configuration.SCREENLAYOUT_SIZE_NORMAL:
    deviceResolutionString="device";
    // This will returns Phone , you can start your phone activity from here 
    break;
    case Configuration.SCREENLAYOUT_SIZE_SMALL:
    deviceResolutionString="device";

    // This will returns Phone , you can start your phone activity from here 
    break;
    default:
    }
    returndeviceResolutionString;
    }

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接