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

10f*_*0ff 8 layout android 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
    • 片剂
    • 手机

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

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

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

cur*_*zen 15

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

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

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


bin*_*dal 6

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

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

基于该版本,您可以在if条件下设置布局