前言
Android适配是一个老生常谈的问题,很多程序员觉得很恶心,不愿意做适配,但是又不得不做。然后老板说,这位兄弟,做好了,今天晚饭给你加个鸡腿,然后程序员开始找各种资料,忙活起来了,最终在苦逼的煎熬中做完了。
好了,言归正传,根据多年开发经验,总结一下Android适配主要表现在以下 3个方面:1、屏幕适配。(网上讲的最多的就是这个。) 由于Android碎片化严重,导致开发中一套代码在不同手机上运行起来效果不是很好,兼容性不是很好,这就需要对不同分辨率,不同屏幕大小的手机做屏幕适配。
2、版本适配。 不同的系统版本api有所变更,既要适配高版本,也要做到兼容低版本。
3、ROM适配。(这个是最难的,工作量也是最大的,如果没有不同版本手机适配的积累,遇到问题都不知道怎么解决。) 由于Android是开源的,不同的手机厂商有自己定制的ROM,对系统的api可能有变更,也有可能新增一些api,所以在开发中,要针对不同厂商的手机做一些特殊适配。

废话少说,开始进入正题。这篇文章我们先讲解第一个问题 ---- 屏幕适配。
一、屏幕适配是啥(可能有人不懂,我在此简单解释一下)?程序猿把设计狮制作的效果图应用到不同的手机,对不同的屏幕进行界面调整的过程,确保界面不变形,呈现效果图的位置、尺寸、比例。
二、需要掌握的几个知识点。(1)屏幕物理尺寸:
屏幕对角线的尺寸。单位是英寸,1英寸 ≈ 2.54厘米比如常见的屏幕尺寸有5.0、5.1、5.2、5.5、5.7、5.9、6.0等(2)屏幕分辨率:定义:
确定计算机屏幕上显示多少信息的设置,以水平和垂直像素来衡量。
计算公式:屏幕分辨率 = 横向像素*纵向像素(或者 宽x高),如 1080*1920单位:
单位是px,1px=1个像素点。
常见分辨率:720x1280、1080x1920(当然还有480x800,这个很少见了)(3)屏幕像素密度(dots per inch)含义:每英寸上的像素点数。
屏幕像素密度与屏幕尺寸和屏幕分辨率有关,在单一变化条件下,屏幕尺寸越小、分辨率越高,像素密度越大,反之越小。
单位:dpi(dots per inch)
假设设备内每英寸有240个像素,那么该设备的屏幕像素密度=240dpi
不同手机屏幕大小对应的屏幕像素密度关系表:密度类型代表的分辨率(px)屏幕像素密度(dpi)低密度(ldpi)240x320120
中密度(mdpi)320x480160
高密度(hdpi)480x800240
超高密度(xhdpi)720x1280320
超超高密度(xxhdpi)1080x1920480当然与像素有关的还有一个单位ppi,这个我们安卓中用不到,有兴趣的可以百度一下。(4)以上三者(屏幕尺寸、分辨率、像素密度)之间的关系

屏幕尺寸、分辨率、像素密度之间的换算图(5)密度无关像素(dp 或 dip)单位:dp,可以保证在不同屏幕像素密度的设备上显示相同的效果
Android开发设置布局和控件宽高,用dp而不是px,dp是Android特有的单位
dp与px的转换
因为ui给的图是以 px 为单位的,Android开发则是使用 dp 作为单位的,那么我们需要进行转换:
在Android中,规定以160dpi(即屏幕分辨率为320x480)为基准:1dp=1px
(6)独立比例像素(sp)单位:sp
Android开发时用sp设置文字大小,使用它可以根据文字大小首选项进行放缩。
不推荐使用奇数和小数,容易造成精度的丢失问题;小于12sp的字体会太小导致用户看不清。
下面给一个实例说明,让你更能明白这几个单位:
看下图你可以知道:为什么使用了dp作为单位,两个手机分辨率也是一样的,可是按钮显示的宽度还是不一样?
本文详细介绍了Android屏幕适配的三个主要方面:屏幕适配、版本适配和ROM适配,重点讨论了屏幕适配,包括屏幕尺寸、分辨率、像素密度之间的关系,以及如何使用dp和sp进行尺寸和字体的适配。通过使用相对布局、限定符和nine-patch图片,实现不同尺寸和密度屏幕的兼容。此外,文章还提到了屏幕方向的适配和密度适配的解决方案。
最低0.47元/天 解锁文章
511

被折叠的 条评论
为什么被折叠?



