我们说的分辨率,
比方
- iphone4的分辨率是 960 * 640 —这个是单位是点,标识装备屏幕上有若干显现单位,每一个显现单位,能够明白一个个物理的发光二极管
- iphone4的尺寸是3.5in,说的是物理的尺寸,对角线的长度,对应我们常说的物理单位,cm,m这类。
- 思索一下,是否是我的分辨率越高,就显现的越清楚?
NO, 分辨率高未必清楚,我都见过那种很大led广告屏,分辨率高啊,几千几万,然则依然能看到显著的颗粒度。
在细致一想,实在清楚不清楚,主要看的是单位密度(ppi)而不是装备总像素的若干。是否是单位密度越高,显现的细节越清楚啊。
- 有无发明,一切的这些都是和详细的装备挂钩的。谈像素谈尺寸,都是离不开详细的装备。
然则有个题目,为啥又引入dp的观点,自力装备像素呢。
物理像素对应装备像素不是挺好?
好吗?
关于开辟人员来讲,装备千千万。分辨率千差万别。
你想一下,假如一样3.5寸的屏幕上,我有个列表
宽度都是100%,高度我设置 20
你会发明,分辨率高的屏幕上,高度迥殊小,宽度迥殊长。反倒是
分辨率高的显现的不清楚(跟蚂蚁一样,密度太高,物理上看起来就小的很)
这可咋整啊。
装备厂商也忧郁了,草尼玛,老子辛辛苦苦进步分辨率,出力不讨好啊。
有啥方法,看起来物理上的高度和宽度都一致,然则更清楚的。
有无什么方法处理啊!
因而人人一算计,你是ppi高吗?那我定义一个单位,
这就引出的自力装备像素,望文生义,就是自力于装备的像素。
我就定义一个逻辑单位,dp
dp有多大呢,dp就有小指头的上方的一小块这么大(笑笑)。
你们呢都,只管往上靠,高的你就在装备层面转化物理像素的时刻,放大一下。
低的呢,你就减少一点。
如许看起来,人人是否是差不多大了。
关于开辟人员来讲,只需设置的两个屏幕逻辑像素雷同,它们的显现结果就是雷同的。
是否是很爽。
人人一总结,发明把装备根据ppi分一下,大概是这么个比例:
ldpi [0.75倍]
mdpi [1倍]
hdpi [1.5倍]
xhdpi [2倍]
xxhdpi [3倍]
xxxhdpi [4倍]
不难发明,真正决议显现结果的,是逻辑像素尺寸(自力装备像素)。
有人问了,我一个前端懂这些有卵子用。
挪动端页面的相对单位就是px啊,我设置dp也不支持啊(草!!!为啥不支持dp?)
px和dp有啥关联?你想啊,浏览器也是装备上的运用,也是根据装备的缩放比缩放的。
详细能够对比一下, 缩放比:
1dp=1px(mdpi、iPhone 3gs)
1dp=1.5px(hdpi)
1dp=2px(xhdpi、iPhone 4s/5/6)
1dp=3px(xxhdpi、iPhone 6)
1dp=4px(xxxhdpi)
你再想一想,不支持dp也行啊,你不是不支持吗?
老子本身造,本身的汽船本身造(哈哈!笑)
既然我都晓得缩放比了,老子本身换算一下不就ok了。
嗯,对了,就你最智慧!!
哈哈,所以就有了rem的处理方案。
ps: 怎样和设想沟通?
单位决议了我们的思索体式格局。
在设想和开辟过程当中,应当只管运用逻辑像素尺寸来思索界面。
设想Android运用时,有的设想师喜好把画布设为1080×1920,有的喜好设成720×1280。
给出的界面元素尺寸就不一致了。
Android的最小点击地区尺寸是48x48dp,这就意味着在xhdpi的装备上,按钮尺寸至少是96x96px。
而在xxhdpi装备上,则是144x144px。
不管画布设成多大,我们设想的是基准倍率的界面款式,而且开辟人员须要的单位都是逻辑像素
。
所以为了保证正确高效的沟通,两边要以逻辑像素尺寸来形貌和明白界面。