版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、三分钟搞定安卓适配问题 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的
2、设备共有3997种。 2013年,支持Android的设备共有11868种。 2014年,支持Android的设备共有18796种。右边这张图片所显示的内容足以充分说明当今Android系统碎片化问题的严重性,因为该图片中的每一个矩形都代表着一种Android设备详细的统计数据请到查看而随着支持Android系统的设备(手机、平板、电视、手表)的增多,设备碎片化、品牌碎片化、系统碎片化、传感器碎片化和屏幕碎片化的程度也在不断地加深。而我们今天要探讨的,则是对我们开发影响比较大的屏幕的碎片化。右一是Android屏幕尺寸的示意图蓝色矩形的大小代表不同尺寸,颜色深浅则代表所占百分比的大小。右二只是
3、4,4s,5,5c,5s和平板的尺寸,现在还应该加上新推出的iphone6和plus,但是和Android的屏幕碎片化程度相比而言,还是差的太远二,重要概念1. 什么是屏幕尺寸、屏幕分辨率、屏幕像素密度? u 屏幕尺寸:是指屏幕对角线的长度。单位是英寸,1英寸=2.54厘米; 比如常见的屏幕尺寸有2.4、2.8、3.5、3.7、4.2、5.0、5.5、6.0等u 屏幕分辨率:是指在横纵向上的像素点数,单位是px,1px=1像素点,一般是纵向像素横向像素,如1280720; u 屏幕像素密度:是指每英寸上的像素点数,单位是dpi,即“dot per inch”的缩写,像素密度和屏幕尺寸和屏幕分辨
4、率有关。在单一变化条件下,屏幕尺寸越小、分辨率越高,像素密度越大,反之越小。 u 三者关系例如:计算Nexus5的屏幕像素密度: 屏幕尺寸:4.95inch、分辨率:19201080,屏幕像素密度:445 2.dp、dip、dpi、sp、px px我们应该是比较熟悉的,前面的分辨率就是用的像素为单位,大多数情况下,比如UI设计、Android原生API都会以px作为统一的计量单位, dip和dp是一个意思,都是Density Independent Pixels的缩写,即密度无关像素,上面我们说过,dpi是屏幕像素密度,假如一英寸里面有160个像素,这个屏幕的像素密度就是160dpi,那么在这
5、种情况下,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、x
6、dpi、xxdpi、xxxdpi?如何计算和区分? 用于区分不同的像素密度。现在主流的手机,都可以找到自己所在的屏幕密度档次。比如一般来说720p的手机是xhdpi,1080p的是xxhdpi。还有一种情况,比如同样都是4 英寸的480*800和4英寸的960*540,尽管实际算出来的dpi不一样,但是都要归到hdpi这一档,dpi都变成了240,这是Android 系统做的一种近似处理,目的是为了简化计算。也就是说,虽然实际上手机的密度有很多种,但是大家会找到自己的近似区间,然后用区间的代表值去做运算。根据前面讲的屏幕密度区间,你可以记住这样一个简单的计算方法:dp 是一个虚拟的概念,是在程
7、序运行的时候算出来的。怎么理解呢?Android设备那么多,分辨率也那么多,直接学iOS用px做单位肯定不行的。为此 Google搞了一个叫dp的东西,换算公式是dp=(dpi/160)*px。也就是说,在密度为160dpi的屏幕上,1px就是1dp。依次类推, 在320dpi的屏幕上,1dp就是2px。屏幕密度越大,1个dp对应的px也就越多。二,解决方案-屏幕适配 1、图片适配 2、尺寸适配 3、布局适配 4、代码适配 5、权重适配1、图片适配图片的查找顺序:ldpi 、mdpi 、 hdpi 、xhdpi、xxhdpi、xxxhdpi先找自己对应的文件夹,再往大的找,大的文件夹中没有图片
8、,就再往小的找例如mdpi(480*320)的手机,查找顺序如下mdpi 、drawable 、 hdpi 、xhdpi、xxhdpi、xxxhdpi、ldip 2、尺寸适配 根据分辨率创建相应values文件夹, 比如 values-1280 x720 (大值在前) 在values文件夹下创建:dimens xml文件 在values-800 x480文件夹下创建:dimens xml文件 在values-1280 x720文件夹下创建:dimens xml文件代码演示屏幕宽度的一半。相应的,在开发的时候,Google提供了一些资源目录,你可以把对应大小的图片放进去。举个例子,你想展示一张1
9、00dp*100dp的图片,那么在mdpi目录下,你需要放100px*100px的原图。在xxxhdpi下,这张图片就得是 300px*300px。你的APP在运行的时候,如果需要加载这张图片,系统就会根据当前手机的密度,去相应的资源目录下去找。你可能会问,找不到怎么办呢?比如当前是mdpi的手机,系统发现mdpi下没有这张图,就会去比mdpi更大的目录找,然后进行缩放。实在找不到就去比mdpi更小的目录找, 找到之后再拉伸。那么设计师在出图的时候,有两种方法可以选。一是按照官方的推荐方法,在上面所有目录下各放置一份同样的图片,根据dp和px的换算关系切成不同的大小,让系统自动去寻找最合适的图
10、片。这种方法成倍的增加设计师的工作量不说,还会增加安装包的体积,用户下载的时候要多耗费流量。第二种方法是选一个基准的屏幕密度,比如xhdpi,720p。所有的资源都放在这里,让系统自动 去缩放。这种方法呢,对于小屏幕的手机来说,因为要在运行的时候把一张大图缩放成小图,不如直接用小图节省内存。对大屏幕的手机呢,比如你720p的图拿 到1080p的手机去显示,肯定会因为缩放而失真。综合起来的话,我更倾向于第二种方法。具体选择哪种屏幕密度做标准,你可以参考下Google官方的统计或者友盟上面的主流分辨率。3、布局适配和图片适配差不多。我们可以为不同的屏幕创建不同的layout文件夹如果我们想让大屏幕的手机显示布局和别的手机不一样,就可以再为大屏创建一个layout。根据分辨率创建layou
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 浙江经济职业技术学院《游戏场景与角色设计》2024-2025学年第二学期期末试卷
- 吉首大学《物联网基础与应用》2024-2025学年第二学期期末试卷
- 宁波诺丁汉大学《审计理论与实务》2024-2025学年第二学期期末试卷
- 天津师范大学《服装工艺与结构》2024-2025学年第二学期期末试卷
- 牡丹江大学《非线性编辑基础》2024-2025学年第二学期期末试卷
- 浙江师范大学《会计信息系统模拟》2024-2025学年第二学期期末试卷
- 广东潮州卫生健康职业学院《运筹学与最优化》2024-2025学年第二学期期末试卷
- 哈尔滨电力职业技术学院《人工智能计算》2024-2025学年第二学期期末试卷
- 山东财经大学燕山学院《建筑环境摄影》2024-2025学年第二学期期末试卷
- 2026年单元练习题测试题及答案
- 2026年春季人教PEP版四年级下册英语Unit 1 Class rules 教案(共6课时)
- 2026年人工智能技术应用与发展试题
- 2026江西南昌印钞有限公司招聘11人备考题库有完整答案详解
- xmind做培训课件教学课件
- 中级砌筑工考试题及答案
- 煤矿机电运输培训课件
- 校园宿管员培训课件
- 安全用电培训内容及要求课件
- 询证函复函协议书
- 2025 九年级数学下册二次函数与一次函数交点问题课件
- 2022青鸟消防JBF5131A 型输入模块使用说明书
评论
0/150
提交评论