PLATFORM_SDK_VERSION 不同导致控件样式不同

最近在使用TableLayout时发现一个现象,同样的代码,使用eclipse编译出的apk和把代码放入android代码树中编译出的apk,竟然界面不一样...显示如下:

eclipse 编译出的界面:



放入package/apps/ 中编译出apk的界面:



从上面2图可以看出有几处不同,app title样式不同,TableLayout样式不同,Button样式不同,背景颜色不同。

可以看到android源码树中编译出来的界面中有些Button都越界了,而eclipse编译出的那种效果是我想要的。


为什么同样的代码,界面差异这么大,最后发现和PLATFORM_SDK_VERSION有关。

当时在eclipse中建立AVD时,选择的API LEVEL是10,PLATFORM为android 2.3.3,所以各控件为2.3的样式。

当把源码放入package/apps/中编译时,如果没有在Android.mk 中指定android:targetSdkVersion时,默认使用build/core/version_defaults.mk中PLATFORM_SDK_VERSION := xx 指定的SDK VERSION为xx,这个VERSION和eclipse中的API LEVEL应该是对应的,这边PLATFORM_SDK_VERSION := 15,所以默认样式使用的是android 4.0的。


如果要强制使用2.3的样式,可以在app的Android.mk加入

<uses-sdk android:targetSdkVersion="10" />


至于4.0的TableLayout为什么会比较凌乱需要再研究一下。


评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值