为android中的不同版本编写不同的布局

时间:2012-01-18 10:24:16

标签: android layout version screen-size android-4.0-ice-cream-sandwich

我必须使用最佳兼容性将我的Android应用程序编程为不同的屏幕尺寸(平板电脑和智能手机)以及版本2.3,3.2和4.0。 我知道为res / layout-sw600dp /命名布局文件夹的可能性。将布局完全匹配到不同的屏幕尺寸。

因此,因为我将使用完全不同的平板电脑/智能手机布局,我会从“加载屏幕”开始,它会测试使用哪个Android版本以及是否使用了平板电脑 - 或智能手机设备,例如在平板电脑的布局中,某些屏幕上会出现按钮,而智能手机上则没有。

所以我必须在包中分离所有这些,例如:

  • 通用
  • 2.3
    • 平板
    • 智能手机
  • 3.2
    • 平板
    • 智能手机
  • 4.0
    • 平板
    • 智能手机

我会选择这种分离,因为这是最好的方式,在我看来,为即将推出的 * 更新 *做好准备,如果,假设应该添加Android 4.0中ToolBar中的一个按钮。

这种分离在你看来是好事还是完全过载?

我应该注意4.0中的其他任何新功能吗?

2 个答案:

答案 0 :(得分:15)

您还可以命名资源文件夹以指明版本号(例如/res/layout-v11)或(/res/values-v13

关于分离的问题 - 这实际上取决于您的特殊要求。这个问题的一个常见方法是回退机制:您提供了一些特定的布局(例如,xlarge landscape v11布局),以及一些可以回归的通用布局。

当然,这是一种“理想主义”的解决方案;它并不总是这样。换句话说,仅仅通过提供替代资源来实际实现与这么多Android版本兼容的应用程序是非常困难的。即使您使用兼容性库(这有助于减少特定于版本的代码);您仍然需要根据运行时的版本调整代码。

答案 1 :(得分:6)

你可以找到看看Build.VERSION的Android版本。

文档建议您针对Build.VERSION_CODES中的值检查Build.VERSION.SDK_INT。

根据该版本,您可以在if else条件下设置布局