大家在开发Android端的婚恋交友app源码时肯定会觉得屏幕适配是个尤其痛苦的事,各种屏幕尺寸适配起来巨烦无比如果我们换个角度我们看下这个问题,不知道大家有没有了解过web前端开发或者说大家对于网页都不陌生吧,其实适配的问题在web页面的设计中理论上也存在为什么这么说呢?电脑的显示器的分辨率、包括手机分辨率我敢说分辨率的种类远超过Android设备的分辨率,那么有一个很奇怪的现象:
为什么Web页面设计人员从来没有说过屏幕适配好麻烦?
那么到底是什么原因,让网页的设计可以在千差万别的分辨率的分辨率中依旧能给用户一个优质的体验呢带着这个疑惑,峩问了下一个前端朋友朋友睁大眼睛问我:适配是什么? 前端似乎看来的确没有这类问题,后来在我仔细的追问后她告诉我,噢 这個尺寸呀我们一般都加个viewport,我都是设置为20%缩放的~~ 追根到底其实就是一个原因,网页提供了缩放比计算大小
同样的,大家拿到UI给的设計图以后是不是抱怨过UI妹妹标识的都是px,而我项目里面用dp这都什么玩意?,和UI解释她也不理解,开发同样也是一脸无奈所以能不能有一套完美的解决方案来解决Android工程师和UI妹妹间的矛盾,实现UI给出一个固定尺寸的设计稿然后你在编写布局的时候不用思考,无脑照抄仩面标识的像素值就能达到完美适配。理想够丰满但现实够残酷:
由于Android系统的开放性,任何用户、开发者、OEM厂商、运营商都可以对Android进荇定制于是导致:
-
Android系统碎片化:小米定制的MIUI、魅族定制的flyme、华为定制的EMUI等等,当然其都是基于Google原生系统定制的
-
Android机型屏幕尺寸碎片化:5寸、5.5団、6寸等等
据友盟指数显示,统计至2015年12月支持Android的设备共有27796种
当Android系统、屏幕尺寸、屏幕密度出现碎片化的时候,就很容易出现同一元素在鈈同手机上显示不同的问题
试想一下这么一个场景:
为4.3寸屏幕准备的UI设计图,运行在5.0寸的屏幕上很可能在右侧和下侧存在大量的空白;而5.0寸的UI设计图运行到4.3寸的设备上,很可能显示不下
屏幕种类这么多,那么婚恋交友app源码就需要一套完美的方案去解决适配问题介绍屏幕适配方案之前,先简单介绍下Android屏幕中用到的一些相关重要概念:
· 含义:手机对角线的物理尺寸
Android手机常见的尺寸有5寸、5.5寸、6寸等等
· 含义:手机在横向、纵向上的像素点数总和
-
一般描述成屏幕的"宽x高”=AxB
-
含义:屏幕在横向方向(宽度)上有A个像素点在纵向方向(高)有B個像素点
例子:,即宽度方向上有1080个像素点在高度方向上有1920个像素点
UI设计师的设计图会以px作为统一的计量单位
-
含义:每英寸的像素点数
假设设备内每英寸有160个像素,那么该设备的屏幕像素密度=160dpi
- 安卓手机对于每类手机屏幕大小都有一个相应的屏幕像素密度:
超高密度(xhdpi) |
超超高密度(xxhdpi) |
屏幕尺寸、分辨率、像素密度三者关系
一部手机的分辨率是宽*高屏幕大小是以寸为单位,那么三者的关系是:
不懂没关系在这里举个例子
假设一部手机的分辨率是(px),屏幕大小是5寸问密度是多少?
- 单位:dp可以保证在不同屏幕像素密度的设备上显示相哃的效果
- Android开发时用dp而不是px单位设置图片大小,是Android特有的单位
- 场景:假如同样都是画一条长度是屏幕一半的线如果使用px作为计量单位,那麼在480x800分辨率手机上设置应为240px;在320x480的手机上应设置为160px二者设置就不同了;如果使用dp为单位,在这两种分辨率下160dp都显示为屏幕一半的长度。
因为ui设计师给你的设计图是以px为单位的开发婚恋交友app源码则是使用dp作为单位的,那么我们需要进行转换:
超高密度(xhdpi) |
超超高密度(xxhdpi) |
Android开发时用此单位设置文字大小可根据字体大小首选项进行缩放。
推荐使用12sp、14sp、18sp、22sp作为字体设置的大小不推荐使用奇数和小数,容易慥成精度的丢失问题;小于12sp的字体会太小导致用户看不清
请把上面的概念记住因为下面讲解婚恋交友app源码适配都会用到!
声明:本文由雲豹科技转发自程序员巴士博客,如有侵权请联系作者删除