最近研究了一下Android中的自动适配,加上Studio便捷的实时预览功能,总结一下如何在Android Studio中快速方便适配多种屏幕。
先来补习一下基础知识,来看几个名词解释:
分辨率:整个屏幕的像素数目,为了表示方便一般用屏幕的像素宽度(水平像素数目)乘以像素高度表示,形如1280x720,反之分辨率为1280x720的屏幕,像素宽度不一定为1280
屏幕密度:表示单位面积内的像素个数,通常用dpi为单位,即每英寸多少个像素点
px:长度单位,以具体像素为单位
dp:长度单位,与具体屏幕密度无关,显示的时候根据具体平台屏幕密度的不同最终转换为相应的像素长度,具体转换规则是: 1dp =(目标屏幕密度/标准密度)*px,标准密度为160dpi,例如,1dp长度在密度为160dpi的平台表示一个像素的长度,而在240dpi的平台则表示1.5个像素的长度
屏幕尺寸:屏幕的大小,通常用屏幕对角线的长度表示,一般单位是inch
这些是最基本的概念,懂了这些,再来看Android中是如何来定义屏幕的大小的:
屏幕尺寸分为:small,normal,large,xlarge分别表示小,中,大,超大屏
屏幕密度分为:ldpi,mdpi,hdpi,xhdpi,它们的标准值分别是:120dpi,160dpi,240dpi,320dpi
我们用一个图来直观地看一下
基本上3inch以下的归为small,而normal据我通过Studio实际操作的到的结果是:几乎3-6inch之间(不包括6inch)的都算是normal(除了个别5.x的WVGA属于Large等个例),在后面的实际操作中我们还会进一步看到。
而屏幕密度其实也是和屏幕大小相对应的,一般来说,屏幕越大的,密度也越高。如果你非得说我的6英寸的大手机,分辨率是800x600,那我的dpi也就160,那是可以的,但是那么大的屏幕,分辨率却很低,这样的设备估计也没人买单,所以,市场的主流也反映出来,屏幕密度越大,屏幕也相对来说要大一些。
好了,介绍完基础知识,我们来看如何在Studio中完成多种设备的屏幕适配。
我们打开工程默认的Layout文件夹,然后选中一个XML布局文件,然后在Studio的右上角,我们能看到列出了很多设备