文章目录
  1. 1. 基本概念
  2. 2. 密度分级
  3. 3. dp密度无关的像素
  4. 4. dp与px的转换
  5. 5. 建议

基本概念

  1. 分辨率,即手机屏幕的像素点数,一般描述为宽×高,Android常见的分辨率有480×800720×12801080×1920
  2. 屏幕大小,即手机屏幕对角线的物理尺寸,以英寸(inch)为单位(1英寸=2.54厘米)
  3. 像素密度(dpi:dots per inch或PPI:pixels per inch),即每英寸的像素点数,数值越高显示越细腻
    如下图:分辨率为1080×1920,尺寸为5英寸,根据勾股定理对角线的像素约2203,那么像素密度大约为440

密度分级

因为手机的像素密度千奇百怪,在屏幕适配的时候必须按一定规则分类,于是有了密度分级,每部Android手机都有一个初始的固定密度,120、160、320、480……通常情况240×320的屏幕是低密度120dpi即ldpi,320×480为中密度160dpi即mdpi,480*800为高密度240dpi即hdpi,720×1280为超高密度320dpi即xhpi,1080×1920为超超高密度480dpi即xxhdpi

dp密度无关的像素

dp也成为dip即density-independent pixel,为了实现在不同分辨率的屏幕上显示“看上去”一样大小需要使用dp来指定尺寸。
文字尺寸一般使用sp即scale-independentpixel,这样字体的大小就会随着系统设置调节字号的大小而改变

dp与px的转换

像素密度为160dpi的中密度手机屏幕为基准屏幕,即320×480的屏幕,此时1dp=1px
像素密度为240dpi的高密度屏幕,即480×800的屏幕,为了显示一张在320×480屏幕“看上去”一样大小的尺寸,需要把尺寸放大1.5倍,此时1dp=1.5px
一次类推dp在不同像素密度下的比例为:ldpi:mdpi:xhdpi:xxhdpi=3:4:6:8:12,间隔数字之间是2的倍数

当Android系统字号设为“普通”时,sp与px的尺寸换算和dp与px一样

建议

目前市面上普遍的机型为720×1280即xhdpi,此时1dp=2px,图片资源放在drawable-xhdpi文件夹中

文章目录
  1. 1. 基本概念
  2. 2. 密度分级
  3. 3. dp密度无关的像素
  4. 4. dp与px的转换
  5. 5. 建议