赞
踩
Android的机型太多了,这也是比较麻烦的事情,一般要处理3个方面的:
1.适配不同的语言
2.适配不同屏幕
3.适配不同的版本
1.适配不同的语言
在res下有个value是,默认的是英语,当资源文件没有其他资源,那就都用这个了。要适配其他语言需要创建额外的values,列如 values-zh(中国), values-fr(法语)等,Android系统会根据当前手机设置的区域适配相应的语言。
2、适配屏幕
一个是layout,一个是drawable
现在Androidstudio基本都帮我们建好了,我们之间在里面写不同屏幕的布局文件就行。这里要说一下,屏幕是分竖屏,横屏的,默认加载的是竖屏,所以要想适配横屏的话还需要自己建。如:layout-land,layout-large-land.竖屏的,layout-large
不同的drawable文件夹是以密度来分的,以前自己整理了一下一个大神的,我直接贴到下面了,包括dp,px,sp的一些说明
PPI = √(长度像素数² + 宽度像素数²) / 屏幕对角线英寸数 (密度)
dp:Density-independent pixels,以160PPI屏幕为标准,则1dp=1px,
dp和px的换算公式 :
dp*ppi/160 = px。比如1dp x 320ppi/160 = 2px。
sp:Scale-independent pixels,它是安卓的字体单位,以160PPI屏幕为标准,当字体大小为 100%时, 1sp=1px。
sp 与 px 的换算公式:sp*ppi/160 = px
px = dp*ppi/160
dp = px / (ppi / 160)
px = sp*ppi/160
sp = px / (ppi / 160)
有了这张图就方便查看了,一般项目如果只采用一套图的话(高密度自动缩小适配低密度),就可以根据上面的规则划算相应的dp.例如UI给你一张图大小48*48,这张图她(一般都是女MM)是按720*1280做的,你放在drawable-hpi里面,那你用xml中写的时候用dp来固定大小,就要除以1.5,设置32dp*32dp,wrap也可。
3、不同系统版本
用Build来判断版本
- if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
- <span style="white-space:pre"> </span>//TODO 大于当前版本
- } else {
- <span style="white-space:pre"> </span>//TODO 小于当前版本
- <span style="white-space:pre"> </span>}
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。