首先做屏幕适配前 , 搞清楚android手机屏幕适配的概念:
1.屏幕尺寸
屏幕的物理尺寸,以屏幕的对角线长度作为依据(比如2.8寸,3.5寸)。Android把所有的屏幕尺寸简化为三大类:大,正常,和小.
2.屏幕长宽比
屏幕长宽比,屏幕的物理长度与物理宽度的比例。程序可以为制定长宽比的屏幕提供制定的素材,只需要用系统提供的资源分类符long和notlong。
3.分辨率
屏幕上拥有的像素的总数。注意,虽然大部分情况下分辨率都被表示为“宽度×长度”(如:240x320,480x800),但分辨率并不意味着屏幕长宽比。在Android系统中,程序一般并不直接处理分辨率
4.密度
密度,DP 每英寸的像素点。一块实际区域有多少个像素点,一般用dip衡量.密度一般是固定的分为 Low(120dip),mid(160dip),hig(240dip),xhig(320dip)。以屏幕分辨率为基础,沿屏幕长宽方向排列的像素。密度较低的屏幕,在长和宽方向都只有比较少的像素,而高密度的屏幕通常则会有很多像素排列在同一区域。屏幕的密度是非常重要的,举个例子,长宽以像素为单位定义的界面元素(比如一个按钮),在低密度的屏幕上会显得很大,但在高密度的屏幕上则会显得很小。Android把屏幕密度分为了四个广义的大小:低(120dpi)、中(160dpi)、高(240dpi)和超高(320dpi) 像素= DP * ( DPI / 160 )
5.密度无关的像素(DIP)
密度无关的像素(DIP):指一个抽象意义上的像素,程序用它来定义界面元素。它作为一个与实际密度无关的单位,帮助程序员构建一个布局方案(界面元素的宽度,高度,位置)。一个与密度无关的像素,在逻辑尺寸上,与一个位于像素密度为160DPI的屏幕上的像素是一致的,这也是Android平台所假定的默认显示设备。在运行的时候,平台会以目标屏幕的密度作为基准,“透明地”处理所有需要的DIP缩放操作。要把密度无关像素转换为屏幕像素,可以用这样一个简单的公式:
pixels = dips * (density /160)。
举个例子,在DPI为240的屏幕上,1个DIP等于1.5个物理像素。我们强烈推荐你用DIP来定义你程序的界面布局,因为这样可以保证你的UI在各种分辨率的屏幕上都可以正常显示。
以上就是适配所需要了解到的基本概念,现在来说一下 分辨率,物理尺寸,密度这三者的关系:
某边的分辨率(总像素) = 该边的物理尺寸 x 像素密度
举例: 一个3.5寸的屏幕,分辨率为480x480 ,那么密度为开方(480^2+480^2)除以3.5,约等于194,屏幕大小和屏幕像素是可独立的,不是说一个5寸的屏幕一定是多少dpi。
对角线的像素值 = 开方(长^2 + 宽^2)
物理尺寸 = 对角线的像素值/(密度x160)
像素和密度的转换:
DPI : LOW(120dpi) medium(160dpi) high(240dpi) extra-high(320dpi)
px(像素) = dp x ( dpi / 160 )
相关文章:精确适配不同的dpi和屏幕尺寸