Android梳理 屏幕适配

来源:互联网 发布:网络拓扑发现算法 编辑:程序博客网 时间:2024/04/28 00:06

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>}


0 0
原创粉丝点击