Android及ios适配原理总结

来源:互联网 发布:java调用方式 编辑:程序博客网 时间:2024/06/15 07:33

这里通过对比Android及ios系统解决多机型适配的方法,加深适配问题的理解,如果错误,请指正

对已Android系统来说,由于Android的机型很多,屏幕种类各异,为了在不同的Android设备上保持一致的体验,在开发Android的app的时候,需要考虑到app的适配问题。

首先,我们需要明确在不同的Android设备上,造成app显示不一样的原因。具体来说,有两个因素影响显示效果

对于同一张图片,我们以下两个结论:

1 手机屏幕的尺寸相同,如果屏幕的分辨率越大,那么图片显示的就会越小,因为屏幕的像素越大,那么图片在屏幕中占据的空间比例也就越小。

2 手机的分辨率相同,如果屏幕的尺寸越大,那么图片显示的就会越大。

所以,为了保证在不同的机型下,实现相同的显示效果,需要综合这两个因素,即屏幕密度的概念。

先了解一下ppi及dpi的概念:

dpi是dot per inch,每英寸多少点,ppi是 pixel per inch,每英寸像素数,针对显示器的设计时,dpi=ppi(ppi表示显示设备的点密度,dpi表示印刷品点密度

这样,我们就可以选取一个基准的ppi,然后通过比例计算出目标设备需要显示实际像素点,以保证物理尺寸的一致,在Android系统中有一个根据dpi转换的单位dp(独立设备像素),1dp表示在屏幕点密度为160ppi时1px长度,dp与px的转换公式为 px=dp*(ppi/160)通过这样转换,我们即可保证在不同的设备上,实现相同的显示效果。


对于ios系统而言,我了解的不多,通过在网上查看一些相关的知识,在此稍作总结:

在ios中也存在一个抽象的表示尺寸的概念,即点,只不过由于ios的设备差距不是特别大,不需要像android那样通过ppi进行转换计算,同时,4、4s、5、5s、6的ppi都是相同的,虽然宽度及高度有所变化,但是对于图片影响不大,只是布局的及布局的宽高需要处理,但是对于6p而言,它的ppi与之前的设备不同,如果使用同一张图的话,图片显示会变小,所以需要为6p需要更大尺寸的图片。

同时在6及6p上,有一个display zoom的概念,即放大显示,在display zoom的模式下,6会显示5s尺寸的布局,而6p会显示6尺寸的布局,这样会相当于减少了画布的大小,从而达到放大显示的目的,但是这样会造成出来的图像失真。


以上即我的理解,参考的内容如下:

http://www.zhihu.com/question/21220154 (DPI、PPI、DP、PX 的详细计算方法及算法来源是什么?)
http://www.zhihu.com/question/26195746  (切图常说的@1X@2X@3X是什么意思?)
http://www.zhihu.com/question/25504852 (如何评价iOS为大屏优化而做的“双视图/Display Zoom”模式?)
http://www.ui001.com/chicun/




0 0
原创粉丝点击