- 1、本文档共16页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
三分钟搞定安卓适配问题
邱春磊 2016-5-26
Android屏幕适配出现的原因
重要概念
屏幕尺寸
屏幕分辨率
屏幕像素密度
dp dip dpi sp px
mdpi hdpi xdpi xxdpi
解决方案
1、图片适配
2、尺寸适配
3、布局适配
4、代码适配
5、权重适配
一:Android屏幕适配出现的原因
由于Android系统的开放性,任何用户、开发者、OEM厂商、运营商都可以对
Android进行定制,修改成他们想要的样子。但是这种“碎片化”到底到达什么程度呢?
在2012年,OpenSignalMaps(以下简称OSM)发布了第一份Android碎片化报告,统计数据表明,
2012年,支持Android的设备共有3997种。
2013年,支持Android的设备共有11868种。
2014年,支持Android的设备共有18796种。
右边这张图片所显示的内容足以充分说明当
今Android系统碎片化问题的严重性,因为
该图片中的每一个矩形都代表着一种Android设备
详细的统计数据请到这里查看
而随着支持Android系统的设备(手机、平板、电视、手表)的增多,设备碎片化、品牌碎片化、系统碎片化、传感器碎片化和屏幕碎片化的程度也在不断地加深。而我们今天要探讨的,则是对我们开发影响比较大的——屏幕的碎片化。
右一是Android屏幕尺寸的示意图
蓝色矩形的大小代表不同尺寸,颜色深浅则代表所占百分比的大小。
右二只是4,4s,5,5c,5s和平板的尺寸,现在还应该加上新推出的iphone6和plus,但是和Android的屏幕碎片化程度相比而言,还是差的太远
二,重要概念
1. 什么是屏幕尺寸、屏幕分辨率、屏幕像素密度?
屏幕尺寸:是指屏幕对角线的长度。单位是英寸,1英寸=2.54厘米;
比如常见的屏幕尺寸有2.4、2.8、3.5、3.7、4.2、5.0、5.5、6.0等
屏幕分辨率:是指在横纵向上的像素点数,单位是px,1px=1像素点,一般是纵向像素横向像素,如1280×720;
屏幕像素密度:是指每英寸上的像素点数,单位是dpi,即“dot per inch”的缩写,像素密度和屏幕尺寸和屏幕分辨率有关。在单一变化条件下,屏幕尺寸越小、分辨率越高,像素密度越大,反之越小。
三者关系
例如:计算Nexus5的屏幕像素密度: 屏幕尺寸:4.95inch、分辨率:1920×1080,屏幕像素密度:445
2.dp、dip、dpi、sp、px
px我们应该是比较熟悉的,前面的分辨率就是用的像素为单位,
大多数情况下,比如UI设计、Android原生API都会以px作为统一的计量单位,
dip和dp是一个意思,都是Density Independent Pixels的缩写,即密度无关像素,上面我们说过,dpi是屏幕像素密度,假如一英寸里面有160个像素,这个屏幕的像素密度就是160dpi,那么在这种情况下,dp和px如何换算呢?在Android中,规定以160dpi为基准,1dip=1px,如果密度是320dpi,则1dip=2px,以此类推。
sp,即scale-independent pixels,与dp类似,但是可以根据文字大小首选项进行放缩,是设置字体大小的御用单位。
假如同样都是画一条480px的线,在720*1280分辨率手机上显示为2/3屏幕宽度,在480*800的手机上则占满了全屏,如果使用dp为单位,在这两种分辨率下160dp都显示为屏幕一般的长度。这也是为什么在Android开发中,写布局的时候要尽量使用dp而不是px的原因。下页图例
3. 什么是mdpi、hdpi、xdpi、xxdpi、xxxdpi?如何计算和区分?
用于区分不同的像素密度。
现在主流的手机,都可以找到自己所在的屏幕密度档次。比如一般来说720p的手机是xhdpi,1080p的是xxhdpi。还有一种情况,比如同样都是4 英寸的480*800和4英寸的960*540,尽管实际算出来的dpi不一样,但是都要归到hdpi这一档,dpi都变成了240,这是Android 系统做的一种近似处理,目的是为了简化计算。也就是说,虽然实际上手机的密度有很多种,但是大家会找到自己的近似区间,然后用区间的代表值去做运算。
根据前面讲的屏幕密度区间,你可以记住这样一个简单的计算方法:
dp 是一个虚拟的概念,是在程序运行的时候算出来的。怎么理解呢?Android设备那么多,分辨率也那么多,直接学iOS用px做单位肯定不行的。为此 Google搞了一个叫dp的东西,换算公式是dp=(dpi/160)*px。也就是说,在密度为160dpi的屏幕上,1px就是1dp。依次类推, 在
您可能关注的文档
- 苹果锈病、果锈病、锈果病分解.ppt
- 那3500单词分解.docx
- 慢性支气管炎护理查房2分解.ppt
- 那罗环境风险评估报告分解.doc
- 苹果有机、绿色种植生产技术规程分解.docx
- 那天,我捡到了快乐的钥匙分解.doc
- 慢性支气管炎患者为何要进行肺功能检查?分解.pptx
- 2015版AHA心肺复苏指南汇编.ppt
- 2015版基础第五章遵守道德规范锤炼高尚品格16汇编.ppt
- 苹果早期落叶病分解.ppt
- 吉安县公开招聘专职文明实践员笔试备考试题及答案解析.docx
- 2025重庆枫叶国际学校招聘教师笔试备考试题及答案解析.docx
- 游机队电玩自制联网教程-tplink.pdf
- 2025重庆新华出版集团招聘1人笔试模拟试题及答案解析.docx
- 2025宜宾高新丽雅城市产业发展有限公司公开招聘笔试模拟试题及答案解析.docx
- 2025云南保山市龙陵县勐糯镇人民政府招聘合同制专职消防员1人笔试模拟试题及答案解析.docx
- 11.1生活中常见的盐 九年级化学人教版下册.pptx
- 6.1法律保护下的婚姻 高二政治《法律与生活》课件(统编版选择性必修2)(新版).pptx
- 文昌市中小学教师校园招聘29人笔试模拟试题及答案解析.docx
- 10.1.5 常见的酸和碱(第5课时)课件-九年级化学人教版下册.pptx
文档评论(0)