android适配不同手机方案(Android多种屏幕适配对比)

#创作挑战赛#

前言

屏幕适配一直作为Android开发中的痛点,对于开发者来说,适配形色各异的手机屏幕确实很头疼,今天小编就目前主流的三种屏幕适配方法进行详细讲解,希望能给大家带来更好的选择。

一、屏幕适配是什么?

由于安卓系统的开放性,不同的厂家都可以根据自己的需要修改Android系统,手机屏幕尺寸也各不相同,对于用户来说可以有不同的选择,但是对于软件开发者而言确实很头痛,一个软件需要同时适配不同尺寸的屏幕,确保给用户带来更好的体验。

二、主流适配1.宽高限定符适配

宽高限定符适配也可以叫屏幕分辨率适配,需要在res文件下创建各种针对不同屏幕分辨率对应的values文件夹。

android适配不同手机方案(Android多种屏幕适配对比)(1)

android适配不同手机方案(Android多种屏幕适配对比)(2)

​编辑

当软件运行在手机上时,系统会根据手机的屏幕分辨率去找对应的values文件,如手机分别率是1280X800,这个时候系统就会加载values-1280x800的dimens文件,这样设计图上设计的控件在手机上显示就正常了。达到了适配的需求,简而言之就是,需要创建不同分辨率的文件夹,系统会根据当前手机的分辨率去加载对应文件。如果手机的分辨率种类太多,就会造成需要创建的文件较多,导致apk包变大。而且只有屏幕分辨率和文件完全匹配才能进行适配。

2.SmallestWidth适配

SmallestWidth适配可以称为最小宽度适配。不管屏幕是横屏还是竖屏,都会以最小的那一边作为宽度进行适配。

SmallestWidth适配是以dp为单位进行适配,如设计图宽度为375,以最小宽度进行换算。

android适配不同手机方案(Android多种屏幕适配对比)(3)

android适配不同手机方案(Android多种屏幕适配对比)(4)

​编辑

android适配不同手机方案(Android多种屏幕适配对比)(5)

android适配不同手机方案(Android多种屏幕适配对比)(6)

​编辑

当手机宽度为300dp时,设计图上为375dp时,将300dp等分为375份,每一份对应的就是0.8dp。当手机为720x300时就会引用sw300dp文件的dimens文件进行适配。如果当手机宽度为311dp时,系统如果找不到sw311dp文件,就会找最小最接近的文件进行适配sw310dp文件。这样确保即使遇到手机分辨率对应的文件不存在时,也能对屏幕进行适配。

3.今日头条适配

在屏幕适配时有一个公式为 dp = px/ density。

px: 像素,在分辨率1080*1920的屏幕,单位就是px,横屏上有1080个物理像素点,竖屏上有1920个物理像素点。

dp:单位,Android上计算控件宽高的单位。

density:每个手机上固定的值。为1dp所占有的像素点。

通常情况下,不同分辨率的手机对应的px不同,经过计算后的dp值也不同,这就出现同一个软件中的控件在不同的手机上对应的dp值不同。就会出现展示的差异。如果保证不同分辨率的手机能正常显示相同dp宽高的控件。动态改变density的值,确保px与density的比值不变。今日头条的适配方法就是通过改变density的值来确保控件在不同分辨率下依然能够正常显示。


总结

通过以上三种适配方法的简单对比,可以为开发者根据业务需求的不同进行选择。如有不对之处,欢迎批评指正。

,

免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com

    分享
    投诉
    首页