Android屏幕适配-第二篇(你要知道的适配基本操作)

为什么要进行屏幕适配?

1.安卓手机碎片化非常严重,每个手机厂商的手机尺寸都可能有所不同,常见的尺寸为4.7、5.0、5.5等

2.不仅尺寸不同而且手机分辨率,有所差异,常见的分辨率有720x1280,1080x1920,1920x2440 等

3.ui出的图都是针对一套手机尺寸来标注的,单位一般为px或dp,如果我们用一套大小来标准不同尺寸不同分辨率的话,可能导致,view变大或缩小,原因:比如ui设计图是以320x480分辨率来设计的,比如一个view设计稿上标注的是160px,如果你直接写死的话,在320x480分辨率手机上看到的view占手机屏幕的一半,但在720x1280手机上看到的是占手机屏幕的1/4,所以屏幕适配是我们必须要做的。

屏幕适配从哪几个方面着手呢?

Android屏幕适配-第二篇(你要知道的适配基本操作)

(PS:此图片是我学习查阅文章里面的图片)

.布局适配

        使用RelativeLayout...

        使用LinearLayout...

        使用FrameLayout...

        尺寸(size)限定符??

        最小宽度限定符(Smallest width),layout-smarell-width(android 3.2以后引入)

               例如:layout-sw 600dp 当手机宽度大于600dp就会使用该文件夹下的xml

.布局组件适配

        定义view大小:

               1.使用wrap_content,或match_parent,尽量少写死不仅大小

               2.固定大小适配,通过第一篇文章《Android屏幕适配-第一篇(基础知识)》所描述的知识,等比例缩放不同分辨率下的view宽高,此种方法就是俗称的百分比布局适配。

                          1.以px(像素)为单位,原理:创建多套分辨率的xml,创建一个基准分辨率的xml,根据屏幕像素密度、屏幕分辨率、屏幕尺寸之间的关系,通过计算出number_x=x(某)px,number_y=x(某)px,例如:以320x480为基准分辨率1_xpx=1px,而在480x800的屏幕分辨率下,1_x=1.5px,然后view设置宽度键为“1_x”所指的值,这就达到了适配的效果,但是有一个弊端,就是各个分辨率都要,设置,安卓的手机分辨率有非常多所以,要实时更新增加各个分辨率的适配,所以有些小瑕疵,还有一个问题就是,如果某手机尺寸,在项目里没配置,是默认去拿基准尺寸还是找相邻的上一个尺寸(这是我的疑问,我没有试过,不过我觉得是找相邻的)

Android屏幕适配-第二篇(你要知道的适配基本操作)Android屏幕适配-第二篇(你要知道的适配基本操作)

                          2.以dp(密度无关像素)为单位,原理和以px为单位的一样所以,我并没有什么需要复述的

.图片适配

        如果用同一套图适配不同分辨率那肯定会不合适的,因为在小于该分辨率下看着图片会变大,在大于该分辨率下看着图片会变小,原因也是在第一篇《Android屏幕适配-第一篇(基础知识)》中讲到了。

       解决方案1.在 ldpi hdpi mdpi xdpi xxdpi 不同分辨率下都放置不同尺寸且相同图片的图,然后系统智能的识别需要使用那个分辨率下的图,如果真的只有一套建议切成xxdpi分辨率的图,因为目前大部分手机1080x1920的手机。

       解决方案2.使用.9或svg的图片

文字适配:直接使用sp

第二篇学习笔记到这里就结束了,下一篇文章记录今日头条适配方案的实战。