




已阅读5页,还剩12页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
web app自适应屏幕方案探讨因为web app跨平台的特性,决定着自适应方案在整个项目的重要性。特别对于Android众多分辨率和屏幕尺寸的机器群,找到合适通用的解决方案显得尤为重要1.页面大小有没有遇到过一个情况?在iphone 4机器上开发时,明明分辨率是960*640,我们写一个320px的容器,竟然占满了屏幕宽;显示一张100*100的图片,会出现模糊失真,必须把图片的宽高都缩小一倍,变成50*50才会正常。导致上面情况的原因是什么呢?这和新的度量单位DPI有关(1)PPI/DPIPPI,有时也叫DPI,所表示的是每英寸所拥有的像素数目,数值越高,即代表显示屏能够以越高的密度显示图像。计算PPI的方法我借鉴了一些文章的图片。我们需要首先算出手机屏幕的对角线等效像素,然后处以对角线(我们平常所说的手机屏幕尺寸就是说的手机屏幕对角线的长度),就可以得到PPI了。(2)px和像素的区别首 先我们需要明确一点,等值的CSS里面的px在手机屏幕上占多大的位置,这不是固定的,还要取决于屏幕的DPI。因为手机会根据DPI,对页面进行自动缩 放来协调屏幕像素和尺寸之间的显示效果。我们计算PPI就是为了知道一部手机设备是属于哪个密度区间的,因为不同的密度区间,对应着不同的默认缩放比例, 这是一个很重要的概念。图1可 以看到,iphone 4的DPI是330,属于xhdpi,默认缩放比例为2,这意味着1个css px实际上是显示了两个像素点,那么一个320px的容器占满屏幕的情况就可以理解了,而图片的显示,因为在photoshop内表示图片的 100*100像素是和屏幕像素对应的,那么在页面内使用100px大小显示图片,情况就相当于在photoshop内将图片放大一倍的效果,模糊、失真 是肯定的。这个缩放比例影响了什么?它让我们开发的时候,考虑的页面大小并非简单的等于屏幕分辨率,而应该是:页面大小 = 分辨率/DPI举些例子:IPHONE 4 640*960/2 = 320*480 HTC G11 480*800/1.5 = 320*533(3)DPI题外话对 于不同的DPI为什么要进行比例缩放,我的理解是这样的:在超高DPI的机器上,意味着在仅有的屏幕尺寸上要分布着几十万个像素点,假如css px和手机像素是1:1的关系,我们在页面上一个16px的字体,在手机屏幕上看可能就和一粒米一样,所以在高清屏幕上,迫不得而必须把页面比例放大让内 容不至于太小看不清。现在许多Android追求大屏幕,但是在分辨率不变的前提下,加大屏幕只是让显示的内容更大,并不会更清晰细腻。乔 布斯在2010年提出一个概念:“当你所拿的东西距离你10-12英寸(约25-30厘米)时,它的分辨率只要达到300dpi这个神奇数字(每英寸 300个像素点)以上,你的视网膜就无法分辨出像素点了。”,这也是为什么苹果的手机屏幕叫作视网膜屏(retina)(4)市场占有率我主要分析apple和android两大阵营。apple来说,从iphone4和itouch4开始使用视网膜屏,而现在使用iphone4以下设备的应该不超过市场的10%,所以统一针对 640*960 DPI为330的页面就行了。而android情况要多很多,根据图1,hdpi占了一半,而xhdpi和mdpi占4分1,ldpi可以忽略。(5)解决方案用viewport让页面保持1:1输出1重 点关注target-densitydpi属性,这个属性可以改变设备的默认缩放。medium-dpi是target-densitydpi的默认值, 如果我们显式定义target-densitydpi=device-dpi,那么设备就会按照真实的dpi来渲染页面。我 们采用 target-densitydpi=device-dpi,这样一来,手机设备就会按照真实的像素数目来渲染,用专业的话来说,就是1 CSS px = 1像素。但是IOS对target-densitydpi不支持,所以我们只能设置 initial-scale=0.5 直接让iphone页面缩小一半。这样对于视网膜屏的iphone,页面整好 是xhdpi960*640,旧版的iphone由原来的480*320放大为960*640,布局效果上没有变化,只是图片流量会有所浪费 因为原本为高清屏准备的图片被缩小了显示;其它android机器也不会再缩放。另外可以通过window.devicePixelRatio来获得当前机器的默认缩放比例,IOS 5以下不生效,下面展示一个页面的例子和在各种手机上的效果123456789101112131415161718192021222324252627282930313233body,html margin:0;padding: 0; 中文$(document).ready(function()var initial_scale = 1/window.devicePixelRatio;alert($(window).width() + / + $(window).height() + / +window.devicePixelRatio + / + initial_scale);)IPHONE 4SIPHONE 3GSHTC G14三星 S3HTC G7联想 很旧的机器华为不知道什么机器2.布局设计理论上,针对不同分辨率出不同的设计图是最好的,当然前端页面也要做多套,这样成本会很高。所以一般来说设计只会出 960*640 和 800*480 两种,足够覆盖市面70%的机器分辨率。而在布局的设计时,要求在保证上面两种分辨率的基础下,尽量考虑其余分辨
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 5岁小孩常见病与护理
- 投行法律培训
- 端午邀约活动课件
- 护理新生培训
- 早产的病因及护理
- 名著导读艾青诗选
- 矿业采矿培训课件
- 新时代教育评价改革总体方案
- 肿瘤并发症感染
- 银行风险案例培训
- 2024年河南焦作中考生物试题及答案1
- 医院培训课件:《导管相关静脉血栓形成专家共识》
- 帆船理论培训课程设计
- 《有机化学》课程说课
- 2024直驱透平有机朗肯循环低温余热发电机组技术规范
- 银行案防工作专题会上发言材料范文
- 原纸购销授权书
- 阅读社团备课
- 2023-2024学年四川省德阳市七年级(下)期末数学试卷(含解析)
- 2024年中华人民共和国企业所得税年度纳税申报表(带公式)20240301更新
- FZ∕T 54007-2019 锦纶6弹力丝行业标准
评论
0/150
提交评论