android屏幕适配

我们在android开发过程中,经常会遇到屏幕适配相关的问题。屏幕适配有的产品比较完善从小屏幕手机到主流的大屏幕手机都进行适配,但是现在80%以上的人用的是大屏幕的手机,所以我们这个只是适配了*1920*1080**1280*720*这两部手机。美工也只是切了这两套图。自己梳理一下屏幕适配的流程。一般一个布局里面的宽高都会写到dimens文件夹里面,为不同的尺寸手机建立多套dimens文件,然后安卓系统会自动寻找最适合自己那套尺寸的宽高。

先来一张图:

像素密度等级 逻辑像素密度 屏幕像素 屏幕尺寸(inch) 宽逻辑尺寸(dp单位) 真实像素密度
ldpi-0.75 120 240*320 2.7 w320dp 140.55
mdpi-1 160 320*480 3.2 w320dp 180.27
hdpi-1.5 240 480*800 3.4 w320dp 274.39
xhdpi-2 320 720*1280 4.65 w360dp 315.6
xhdpi-2 320 768*1280 4.65 w384dp 321
xxhdpi-3 480 1080*1920 4.95 w360dp 445
xxxdpi-4 640 1440*2560 5.96 w360dp 492
这是市场上手机各个手机的各种参数。

我是怎么适配的?

假如,在xhdpi-2(这个2是像素密度等级,在1280*720手机上 就是 1dp=2px,如果像素密度等级是3那么该手机是 1dp=3px)有一个参数是 200dp,那么在hdpi-1.5上,该参数就是 (200dp/384dp)*320dp=167dp。所以在hdpi-1.5上就是167dp,看起来有点繁琐呢。

下面是一些参数的解释:

  • 像素密度等级:是 rom 厂商设定的值,一般是取实际屏幕密度最接近的屏幕密度等级对应的值,但是也可以自主设定,通过系统 api,getResources().getDisplayMetrics().density 可以获取到该值
  • 逻辑像素密度:像素密度等级对应的像素密度
  • 像素:就是屏幕的实际像素单元个数
  • 尺寸:就是屏幕的实际尺寸大小
  • 逻辑尺寸:实际像素数/像素密度等级
  • 真实像素密度:利用勾股定理算对角线上像素数/对角线尺寸
1920*1080手机上,1080是指什么呢?就是指这个屏幕的宽是1080个像素。那么手机尺寸是怎么算出来的呢?
采用勾股定理算出该手机斜边的像素是2202像素,然后根据上表 用2202/445=4.9多。约等于5所以这个手机就是5寸的手机。



你可能感兴趣的:(android,屏幕适配)