赞
踩
分辨率 | 高度 | 宽度 | 宽高比(宽/高) |
---|---|---|---|
1920x1080 | 1920 | 1080 | 0.5625 |
2094x1080 | 2094 | 1080 | 0.5157593123 |
2220x1080 | 2220 | 1080 | 0.4864864865 |
1280x720 | 1280 | 720 | 0.5625 |
2392x1440 | 2392 | 1440 | 0.602006689 |
2560x1440 | 2560 | 1440 | 0.5625 |
1776x1080 | 1776 | 1080 | 0.6081081081 |
2030x1080 | 2030 | 1080 | 0.5320197044 |
2118x1080 | 2118 | 1080 | 0.5099150142 |
2076x1080 | 2076 | 1080 | 0.5202312139 |
568x320 | 568 | 320 | 0.5633802817 |
800x480 | 800 | 480 | 0.6 |
854x480 | 854 | 480 | 0.5620608899 |
960x540 | 960 | 540 | 0.5625 |
1184x720 | 1184 | 720 | 0.6081081081 |
1208x720 | 1208 | 720 | 0.5960264901 |
1280x800 | 1280 | 800 | 0.625 |
1280x768 | 1280 | 768 | 0.6 |
1176x1080 | 1176 | 1080 | 0.9183673469 |
1800x1080 | 1800 | 1080 | 0.6 |
1812x1080 | 1812 | 1080 | 0.5960264901 |
1920x1152 | 1920 | 1152 | 0.6 |
1920x1200 | 1920 | 1200 | 0.625 |
2160x1080 | 2160 | 1080 | 0.5 |
2208x1080 | 2208 | 1080 | 0.4891304348 |
2240x1080 | 2240 | 1080 | 0.4821428571 |
2244x1080 | 2244 | 1080 | 0.4812834225 |
2280x1080 | 2280 | 1080 | 0.4736842105 |
2560x1312 | 2560 | 1312 | 0.5125 |
2560x1600 | 2560 | 1600 | 0.625 |
2960x1400 | 2960 | 1400 | 0.472972973 |
图一,完美的阐述了安卓分辨率之多,且宽高比率不一致的问题,
图二,完美的阐述了安卓分辨率的适配方案。
关于安卓手机分辨率尺寸各有不同,为了支持多种屏幕,给大家推荐三种适配方案:
(以上三种方案可以根据项目实际情况相结合使用)
这里主要说下第二种方案和第三种方案的原理:
第二种方案,其实就是通过一系列算法去计算每个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目录下新建默认分辨率。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。