适应Android平台或API级别的布局

时间:2011-06-30 14:09:22

标签: android android-layout

对于我目前正在开发的应用程序,我需要将不同活动的布局调整为用户的Android API级别。

有办法做到这一点吗?

3 个答案:

答案 0 :(得分:78)

如果您尝试执行的操作是根据设备上可用的API版本显示不同的布局,则需要使用configuration qualifiersalternative resources的具体内容也有记录。

最基本的方法是为您要使用的每个API级别创建一个布局文件夹,格式如下:

res/layout/mylayout.xml       (Default)
res/layout-v4/mylayout.xml    (Android 1.6)
res/layout-v11/mylayout.xml   (Android 3.0)

等等,其中vN是API级别。可以找到特定的API级别on this page

答案 1 :(得分:4)

正如安德鲁·科斯特所说,你可以使用不同的版本文件夹,但我发现这是很多工作,因为它不会回退到默认布局。如果您使用layout-v14,它将工作,但14之后的任何api也将具有此布局,您必须使用另一个布局-v?再次覆盖它。这一切都取决于你做了什么,但我发现如果你以编程方式做很多事情就会产生奇迹:

if(Build.VERSION.SDK_INT == Build.VERSION_CODES.ICE_CREAM_SANDWICH || Build.VERSION.SDK_INT == Build.VERSION_CODES.ICE_CREAM_SANDWICH_MR1){
            //ex. if ics is met then do this

        }else{
            //if api is not ics then do this
        }

答案 2 :(得分:0)

如果您已经拥有每个平台级别的可绘制资源,则可以使用http://developer.android.com/guide/topics/resources/providing-resources.html#AlternativeResources

中提供的信息

更具体地说,请查看表2中的“平台版本(API级别)”行。