900字范文,内容丰富有趣,生活中的好帮手!
900字范文 > android屏幕分辨率适配

android屏幕分辨率适配

时间:2020-06-12 03:57:04

相关推荐

android屏幕分辨率适配

图一,完美的阐述了安卓分辨率之多,且宽高比率不一致的问题,

图二,完美的阐述了安卓分辨率的适配方案。

关于安卓手机分辨率尺寸各有不同,为了支持多种屏幕,给大家推荐三种适配方案:

1.googe开源百分比布局

2.动态适配各个屏幕分辨率

3.静态适配各个屏幕分辨率(XML自动生成工具)

(以上三种方案可以根据项目实际情况相结合使用)

这里主要说下第二种方案和第三种方案的原理:

第二种方案,其实就是通过一系列算法去计算每个view在用户手机屏幕中应该的宽高,从而达到一个适配效果;

第三种方案,原理大致简单的说一下吧,每个公司都有自己的UI设计师,通常设计师会在一个屏幕尺寸上作图,例如设计师在1280x720上作图,那么我们在android项目工程的res目录下新建文件夹values-1208x720,另外再新建两个文件dimens_width.xml和dimens_height.xml用来存放宽度和高度。

我们可以看到,name-value的一一对应关系,所以UI设计师在1280x720尺寸上作图时,如果效果图上标注控件的宽是4px,高是2px,那么我们引用 android:layout_width="@dimen/width4px" android:layout_height="@dimen/height2px" 就可以达到完美的适配效果。那么问题来了,它在1920x1080分辨率上的尺寸怎么办呢?使用“静态xml适配各个屏幕分辨率”来解决此问题,它会自动生成相对应的尺寸大小至values-1920x1080目录下。

上图中我们可以看到,在values-1920x1080中,width4px对应的是6px,而height2px对应的是3px,是因为在生成静态xml的时候就根据你的UI效果图的基础尺寸把其他分辨率上的尺寸给适配好了,所以,还是那句话,我们引用 android:layout_width="@dimen/width4px" android:layout_height="@dimen/height2px" 就可以达到完美的适配效果。

为了帮助大家更好的理解,我再举个栗子,假设UI设计师有时候在720x1280上做效果图,有时候在1080x1920上做效果图,那该怎么应用呢?UI设计师在哪个屏幕分辨率上做标注,你就传入哪个屏幕分辨率目录下跟UI设计师标注的相对应宽高的值所对应的资源名称即可。

安卓设备有数不尽的各种奇葩分辨率,我们需要每个屏幕分辨率都生成xml文件吗?不需要,你可以选取你们app用户量排名前30的设备来做分辨率适配,然后另外也可以选取一些特定的分辨率就可以了,因为即使用户的设备找不到与之相匹配的大小时,它还会向下寻找与它相近的文件夹分辨率来取值,但是这里要注意了,如果找不到与之匹配的大小时,向下也没有声明比这更小的分辨率文件夹时,并且也没有设置默认的分辨率文件时,它可能会无情的向你报一个错:

Caused by: android.view.InflateException: Binary XML file line #13: Binary XML file line #13: You must supply a layout_width attribute

Caused by: java.lang.UnsupportedOperationException: Binary XML file line #13: You must supply a layout_width attribute.

以防万一,我们还可以选择在res/values目录下新建默认分辨率。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。