Android屏幕适配

PS:一部分一部分来,先介绍基本概念,明天继续补充~

定义

使得某一元素在Android不同的尺寸、不同分辨率的手机上面具备相同的显示效果。

相关重要概念

屏幕尺寸

  • 含义:手机对角线的物理尺寸

  • 单位:英寸(inch),1英寸 = 2.54cm

    Android手机目前主流的屏幕尺寸为5寸,5.5寸,6寸等

屏幕分辨率

  • 含义:手机在横向纵向上像素点数的总和

    一般 描述成屏幕的 「宽 * 高」,即「横向方向像素点 * 纵向方向像素点」。

  • 单位:px(pixel),1px = 1像素点

    1. UI设计师的设计图一般会以px作为统一计量单位
    2. Android手机目前主流的屏幕分辨率为:320 * 480 、480 * 800、720 * 1280,1080 * 10920等

屏幕像素密度

  • 含义:每英寸的像素点数

  • 单位:dpi(dots per ich)

密度类型 「代表」的分辨率(px) 屏幕像素密度(dpi)
低密度(ldpi) 240 * 320 120
中密度(mdpi) 320 * 480 160
高密度(hdpi) 480 * 800 240
超高密度(xhdpi) 720 * 1280 320
超超高密度(xxhdpi) 1080 * 1920 480
  • Android手机对每类手机屏幕大小都有一个相应的屏幕像素密度

屏幕尺寸、屏幕分辨率、屏幕像素密度三者之间的关系

一部手机的屏幕分辨率是宽x高,屏幕大小是以英寸为单位,三者有以下关系:

密度(单位/dpi) =
Android屏幕适配_第1张图片

举个栗子:

Android屏幕适配_第2张图片

直接套公式之后:2203px/5in = 440dpi. 即此款手机的屏幕像素密度为:440dpi

密度无关像素

  • 含义:density-independent pixel,叫dp或dip,与终端上的实际物理像素点无关

  • 单位:dp,可以保证在不同屏幕像素密度的设备上显示相同的效果

    Android开发时一般使用dp而不是px设置元素的大小。dp是Android特有的单位

  • dp与px的转换

    因为UI设计图一般都以px为单位,Android开发一般都以dp为单位,所以学会转换是非常必要的

密度类型 「代表」的分辨率(px) 屏幕像素密度(dpi) 换算(px/dp) 比例
低密度(ldpi) 240 * 320 120 1dp=0.75px 3
中密度(mdpi) 320 * 480 160 1dp=1px 4
高密度(hdpi) 480 * 800 240 1dp=1.25px 6
超高密度(xhdpi) 720 * 1280 320 1dp=2px 8
超超高密度(xxhdpi) 1080 * 1920 480 1dp=3px 12

在Android中,规定以160dpi(即屏幕分辨率为320x480)为基准:1dp=1px

举个栗子:

假如同样都是画一条长度是屏幕一半的线,如果使用px作为计量单位,那么在480x800分辨率手机上设置应为240px,在320x480的手机上应设置为160px,二者就需要分别设置了。

但是如果使用dp为单位,160dp在480x800分辨率手机上显示长度为:160x1.25=200px;在320x480分辨率的手机上显示长度为:160x1=160px;均显示为屏幕宽度的一半,不需要额外去设置了~

独立比例像素

  • 含义:scale-independent pixel,叫sp或sip

  • 单位:sp

    1. Android开发时用此单位设置文字大小,可根据字体大小首选项进行缩放
    2. 推荐使用12sp、14sp、18sp、22sp作为字体设置的大小,不推荐使用奇数和小数,容易造成精度的丢失问题;小于12sp的字体会太小导致用户看不清

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