【问题标题】:How To make Tablet Compatibility of Android App?如何使Android App的平板兼容?
【发布时间】:2012-10-24 03:23:04
【问题描述】:

我开发了在 Google play 上发布的移动应用程序。现在客户端要求应用程序与平板设备兼容。我知道所有不同的可绘制文件夹都用于不同密度的设备。

我从 Tablet Designs 开始,并通过使用另一个名为 layout-large 的布局文件夹来完成所有这些设计。

现在我的问题是我是否需要分别为 7"、9" 和 10" 屏幕设计平板电脑屏幕?或者对于任何平板电脑设备,保存在 layout-large 文件夹中的屏幕设计将用于平板电脑。

我不确定上述内容,我什至使用了另一个名为 layout-sw720dp 的文件夹,并为 9" 平板电脑指定了名称。这里我使用了一些不同的图像,因为我们有更多空间。因为我只有 7"平板电脑对其进行测试,并在测试时看到布局大文件夹中使用的所有屏幕都很好。当我将我的 apk 文件发送给客户端时,已知客户端也只能看到布局大文件夹屏幕。

我对此进行了很多搜索,我发现只有单独的布局,但我没有发现任何关于设计适用于所有平板电脑或单独的屏幕的信息。阅读 android 教程,我发现我们应该使用说明符 sw600dp、sw720dp。这意味着两者都应该在那里,否则任何一个都不够理解。

我对我的英语感到非常抱歉,这是我第一次做移动应用程序的平板电脑兼容性。请在这方面提供帮助。

提前致谢。

【问题讨论】:

  • 有些 7" 设备使用大文件夹布局,有些使用 sw600dp,这取决于设备。

标签: android


【解决方案1】:

是否需要分别为 7"、9" 和 10" 屏幕设计平板电脑屏幕?

希望不是,但这不可能在摘要中回答。

或者对于任何平板设备,保存在 layout-large 文件夹中的屏幕设计将用于平板电脑。

是的。如果您不提供res/layout-xlarge/ 目录,-xlarge 设备(例如,10" 平板电脑)将使用res/layout-large/

阅读 android 教程,我发现我们应该使用说明符 sw600dp、sw720dp。这意味着两者都应该在那里,否则任何一个都不够理解

如果您愿意,欢迎您使用它们。请注意,它们仅适用于 Android 3.2 及更高版本。

【讨论】:

  • 非常感谢您的回答,现在我的困惑很清楚了。我只想再澄清一点。在谷歌上搜索时,我发现 large,xlarge 说明符已被弃用。这是真的吗?如果是这样,那么我可以使用 sw600dp、sw700dp。但问题是我的应用程序构建 sdk 是 2.1,并且我阅读了 sw600dp,sw700dp 不适用于预蜂窝设备。我该如何解决这个问题。
  • @NR2812:Android 中的“已弃用”表示“我们认为您应该考虑另一种解决方案”。对于 -large 和 kin,它们在 Android 3.2 中已被弃用。但是,它们的替代品仅在 Android 3.2 中添加。 “已弃用”的原始存储桶是运行 Android 3.1 及更低版本的设备的唯一选择,这些存储桶在 Android 3.2 及更高版本上也能正常工作。我建议人们在 Android 2.x 消失之前坚持使用旧存储桶,除非您对新的 -swNNNdp 系统有特殊需求。
【解决方案2】:

此解决方案也兼容所有 android 手机设备和平板电脑。 这是相同的解决方案

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;
    }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-15
    • 1970-01-01
    • 2021-07-13
    相关资源
    最近更新 更多