Android常用屏幕适配

相信对于移动开发的小伙伴来说,屏幕适配并不陌生,在项目中应该都会遇到这个问题。比如说,在小米手机上显示很正常,而在华为手机上显示就有问题,这就是屏幕适配的问题。下面,我们就来详细了解一下有关屏幕适配的知识点。

1、为什么要屏幕适配

因为Android系统的开放性,任何用户、开发者、OEM厂商、运营商都可以对Android进行定制,于是导致运行 Android 的设备多种多样,它们有着不同的屏幕尺寸和像素密度。 尽管系统可通过基本的缩放和调整大小功能使界面适应不同屏幕,但是,有些情况却是不尽人意,我们开发者就要进一步优化,确保我们的界面合理美观的展现在不同的手机屏幕上。 

2、先了解几个基本概念 

  • 屏幕尺寸:屏幕尺寸指屏幕的对角线的长度,单位是英寸,1英寸=2.54厘米   常见的屏幕尺寸有2.4、2.8、3.5、3.7、4.2、5.0、5.5、6.0等
  • 屏幕分辨率:屏幕分辨率是指在横纵向上的像素点数,单位是px,1px=1个像素点。一般以纵向像素*横向像素,    如1960\*1080,表示宽度方向上有1080个像素点,在高度方向上有1920个像素点  
  • 屏幕像素密度:屏幕像素密度是指每英寸上的像素点数,单位是dpi,即“dot per inch”的缩写。屏幕像素密度与屏幕尺寸和屏幕分辨率有关,在单一变化条件下,屏幕尺寸越小、分辨率越高,像素密度越大,反之越小。
  • 密度无关像素 density-independent pixel ,叫 dp dip,与终端上的实际物理像素点无关。可以保证在不同屏幕像素 密度的设备上显示相同的效果
  • 独立比例像素: sp ,即 scale-independent pixels ,与 dp 类似,但是可以根据文字大小首选项进行放缩,是设置字体大 小的御用单位。
     
Android 开发时用 dp 而不是 px 单位设置图片大小,是 Android 特有的单位
 
场景:假如同样都是画一条长度是屏幕一半的线,如果使用 px 作为计量单位,那么在 480x800 分辨率手机上设置应为 240px ;在 320x480 的手机上应设置为 160px ,二者设置就不同了;如果使用 dp 为单位,在这两种分辨率下, 160dp 都显示为屏幕一半的长度。

 
安卓手机对于每类手机屏幕大小都有一个相应的屏幕像素密度:
 
Android常用屏幕适配

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

Android常用屏幕适配

  dp与px的转换:px = dp * (dpi / 160)

Android常用屏幕适配

Android常用屏幕适配

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