引子
屏幕适配是android绕不开的一个问题。本文将屏幕适配的<代码>知识要点代码>完整展现给各位读者。
引用>正文大纲
<李>
android需要做屏幕适配的原因
李> <李>基础知识点(很重要)
李> <李>屏幕适配攻略
李>正文
android需要做屏幕适配的原因
android面世以来,谷歌开源了android系统,各家厂商各自为政,导致屏幕尺寸没有统一标准,屏幕的各种各样,也是各个厂家攀比的资本,导致android开发者想要用一套代码来适配所有的设备变得格外的困难,虽然出了dp单位来替代px,但是dp依然有它无法完全适配的地方。
引用>
这个也就是需要我们利用其他手段去完成适配的地方。面试点
:关于屏幕适配,为什么有了<代码> dp 代码>单位,依然要适配呢?
引用>
: <代码> dp> 代码虽然能够解决大部分情况下的适配问题,但是针对少数机型,无法适配,
原因是:谷歌<代码> 代码>提供的<代码> dp 代码>单位,在现有的android <代码> 代码>市场环境下,是的,编码时的<代码> dp> 代码,在运行时会转化成<代码> px> 代码,此时的px不能准确对UI的照原本设计。
最就是:同样<代码> 300 dp> 代码,在一个手机上可以,但是在B手机上,,或者。
后面会解释。基础知识点(很重要)
以下概念很基础,但是也很重要,基础知识缺少一个环节,后面复杂的攻略理解起来就有障碍。
引用>1。像素点
像素点是物理概念,用术语来解释,就是如下这段话:
引用>
<代码>通常所说的像素,就是CCD/CMOS上光电感应元件的数量,一个感光元件经过感光,光电信号转换,A/D转换等步骤以后,在输出的照片上就形成一个点,我们如果把影像放大数倍,会发现这些连续色调其实是由许多色彩相近的小方点所组成,这些小方点就是构成影像的最小单位“像素”(像素)。简而言之,像素就是手机屏幕的最小构成单元。代码>简单来说,像素点就是<代码>屏幕上色彩区域的最小单位> 代码。在所有的设备上,1 px都是等同的。ui姐姐作图一般都会以像素为单位。
2。分辨率
比如:1920 1080分辨率,表示当前设备的屏幕是由横向1080 纵向1920个像素点组合而成。
引用>3。屏幕尺寸
屏幕对角线的长度。一般以英寸为单位,常见的屏幕尺寸有4.7 <代码> 代码>,<代码> 5.5 代码>,<代码> 6.0 代码>。
引用>4。屏幕像素密度
: <代码>一平方英寸代码>面积内,存在<代码>多少个> 代码像素点。
引用>
同样是<代码> 1920 * 1080> 代码的分辨率,存在两款手机,一个是4.7英寸,一个是6.0英寸,这两者的<代码>像素密度> 代码是不一样的。
: dpi(每英寸点)。
: 160 dpi。即:<代码>一平方英寸代码>面积,存在<代码> 160> 代码像素点。(mdpi)。5。屏幕尺寸,分辨率,像素密度三者之间的关系
<代码>像素密度> 代码,可以由<代码>屏幕尺寸代码>和<代码>分辨率代码>计算得出。
计算公式为:
比如下图所示:
我这里有一块1920 * 1080的5寸屏幕,通过上面的公式计算得出,它的像素密度为440 dpi。
引用>
可见,px是和像素密度有直接关系的像素单位。6。密度无关的像素单位(dp,或者倾斜)
全英文为:密度独立像素。
引用>
使用dp作为长度单位,可以保证在不同的屏幕像素密度的手机上显示很相似的效果。
比如:使用<代码> 480 x800> 代码的手机上,要画一条长度为一半屏幕宽的线条,我们可以设置线条的长度为<代码> 240 px> 代码,而在<代码> 320 x480> 代码的屏幕上,我们只需要<代码> 160 px> 代码,但是我们可以直接使用<代码> 160 dp> 代码,来同时让两个屏幕上的这条线占全宽的一半。px和dp的换算公式为:<代码> px=dp * (dpi/160) 代码>
如果有一个屏幕密度为160 dpi的手机,在它上面,1 px=1 dp;
而如果是320 dpi的手机,则1 px=0.5 dp。
简而言之规律就是:Android屏幕适配;知识点+攻略+面试要点