要想熟练的应用屏幕适配我们就需要屏幕适配到底有什么作用。
什么是屏幕适配
屏幕适配简单的来说就是我们根据用户设备屏幕分辨率的不同,而对应不同的解决方法。
屏幕适配包括几个不同的方面,他们分别是:布局适配,文字适配,图片适配,尺寸适配
Android适配机制
drawable,在工程里可以在res目录下创建一系列的带后缀的drawable文件夹,例如drawable-hdpi,drawable-xhdpi等等。
drawable的适配机制是,系统会先到后缀与设备匹配的drawable目录下找对应的图片,当找不到的时候会去‘更高’一级的目录去找,再找不到,继续往高一级的找,再找不到就退而求其次去低一级的找,依次类推。
例如,在密度为xxhdpi的手机上运行app,会去drawable-xxhdpi目录下找图片资源,找不到就去drawable-xxxhdpi找,如果没有比drawable-xxxhdpi更高的,则再找不到就去drawable-xhdpi找,再找不到就去drawable-hdpi找,直到找到对应的图片资源,当找到后,系统会按密度对图片做缩放处理,然后再显示到屏幕上,所以如果图片放的目录不对的话,有可能造成图片模糊。
layout目录,layout目录也是可以加后缀的,通常是带分辨率后缀(当然也可以加其他后缀,详见android官网,这里只讨论常用的后缀),例如, layout-land-1024x720,layout-1280x720,layout-1920x1080等等。
layout目录的适配机制是,从“高往低”找最接近的尺寸目录,例如手机是1920x1080分辨率的,但是如果无此layout目录那么便会低一级的layout-1280x720找布局(而不会去高一级的layout-2560x1440找),依次类推,直至找到layout不带后缀的目录为止,如果还没有,就会报错。
文字适配
在我今天所学的内容中,我们需要在创建一个layout-en的包。在里面我们只需要创建一个与layout中的相同的xmls文件。当我们的设备操作系统变为英语时。我们的APP就会自动变为layout-en的包中所显示的文件。
尺寸适配
尺寸适配就不多说了,就与我上面所说的适配机制所讲的那样。
下面附上代码
<resources>
<dimen name="btn_width" values="100dp"></dimen>
</resources>
<Button
android:layout_width="@dimenn_width"
android:layout_height="50dp"
android:text="hello"/>
图片适配
当同名的一张图片mm.jpg ,但内容不同图片,分别放置不同的目录,手机会更加当前屏幕密度,加载不同的图片。
所以方法就跟以上的方法差不多。
布局适配
布局适配的方法跟上面的方法差不多,只需要创建相对应的文件并且里面的文件名与正常的文件名相同那么我们就可以实现布局的适配。