android 冷知识 像素

android 像素

px (像素): 每一px对应屏幕上的一个点。

dip或dp(device independentpixels,设备独立像素):
                     一种基于屏幕密度的抽象单位。在每英寸160点的显示器上,1dp=1px。但随着屏幕密度的改变,dp与px的换算会发生改变。一般为了支持WVGA、HVGA和QVGA推荐使用这个,不依赖像素。

sp(scaled pixels,比例像素):主要处理字体的大小,可以根据用户的字体大小首选项进行缩放。与缩放无关的抽象像素,它和dp很相似,但唯一的区别在于,Android系统允许用户自定义文字尺寸大小(小,正常,大,超大等),当文字尺寸是“正常”时,1sp=1dp=0.00625inch(英寸),当文字尺寸是“大”或“超大”时,1sp>1dp=0.00625inch。

in(英寸):标准长度单位。

mm(毫米):标准长度单位。

pt(磅):标准长度单位,1/72英寸

dpi (dot per inch)每英寸像素多少

  ppi:PPI = √(长度像素数² + 宽度像素数²) / 屏幕对角线英寸数(ppi与dpi的关系)

       dpi:dots per inch(每英寸点数,或者说每英寸像素数目 更易懂),由设备决定,是写死的,可以通过context.getResources().getDisplayMetrics().densityDpi获取到。当然,也可以通过以下方法算出:

  dpi=横向分辨率/横向英寸数=纵向分辨率/纵向英寸数

Google 规定的屏幕密度列表:

  • ldpi (low) ~120dpi
  • mdpi (medium) ~160dpi
  • hdpi (high) ~240dpi
  • xhdpi (extra-high) ~320dpi
  • xxhdpi (extra-extra-high) ~480dpi
  • xxxhdpi (extra-extra-extra-high) ~640dpi

计算公式

dp与px

px=dp*(dpi/160)

dp=px/(dpi/160)

sp与px

px=sp*(dpi/160)

sp=px/(dpi/160)

dp=sp?简单来说当屏幕比率为标准时,dp等于sp,当屏幕比大,sp>dp,反之亦然

猜你喜欢

转载自blog.csdn.net/yunna520/article/details/83178104