我必须使用最佳兼容性将我的Android应用程序编程为不同的屏幕尺寸(平板电脑和智能手机)以及版本2.3,3.2和4.0。 我知道为res / layout-sw600dp /命名布局文件夹的可能性。将布局完全匹配到不同的屏幕尺寸。
因此,因为我将使用完全不同的平板电脑/智能手机布局,我会从“加载屏幕”开始,它会测试使用哪个Android版本以及是否使用了平板电脑 - 或智能手机设备,例如在平板电脑的布局中,某些屏幕上会出现按钮,而智能手机上则没有。
所以我必须在包中分离所有这些,例如:
我会选择这种分离,因为这是最好的方式,在我看来,为即将推出的 * 更新 *做好准备,如果,假设应该添加Android 4.0中ToolBar中的一个按钮。
这种分离在你看来是好事还是完全过载?
我应该注意4.0中的其他任何新功能吗?
答案 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条件下设置布局