目前市面上移动设备的分辨率可能是以下其中的一种。
编号 | 类型 | 宽(PX) | 高(PX) | 是否普及 |
1. | QVGA | 320 | 240 | 普及 |
2. | WQVGA | 320 | 480 | 普及 |
3. | WQVGA2 | 400 | 240 | 普及 |
4. | WQVGA3 | 432 | 240 | 普及 |
5. | HVGA | 480 | 320 | 普及 |
6. | VGA | 640 | 480 | 普及 |
7. | WVGA | 800 | 480 | 普及 |
8. | WVGA2 | 768 | 480 | 普及 |
9. | FWVGA | 854 | 480 | 普及 |
10. | DVGA | 960 | 640 | 普及 |
11. | PAL | 576 | 520 |
|
12. | NTSC | 486 | 440 |
|
13. | SVGA | 800 | 600 |
|
14. | WSVGA | 1024 | 576 | 普及 |
15. | XGA | 1024 | 768 | 普及 |
16. | XGAPLUS | 1152 | 864 |
|
17. | HD720 | 1280 | 720 |
|
18. | WXGA | 1280 | 768 | 普及 |
19. | WXGA2 | 1280 | 800 | 普及 |
20. | WXGA3 | 1280 | 854 |
|
21. | SXGA | 1280 | 1024 |
|
22. | WXGA4 | 1366 | 768 |
|
23. | SXGAMINUS | 1280 | 960 |
|
24. | SXGAPLUS | 1400 | 1050 |
|
25. | WXGAPLUS | 1440 | 900 |
|
26. | HD900 | 1600 | 900 |
|
27. | WSXGA | 1600 | 1024 |
|
28. | WSXGAPLUS | 1680 | 1050 |
|
29. | UXGA | 1600 | 1200 |
|
30. | HD1080 | 1920 | 1080 |
|
31. | QWXGA | 2048 | 1152 |
|
32. | WUXGA | 1920 | 1200 |
|
33. | TXGA | 1920 | 1400 |
|
34. | QXGA | 2048 | 1536 |
|
35. | WQHD | 2560 | 1440 |
|
36. | WQXGA | 2560 | 1600 |
|
37. | QSXGA | 2560 | 2048 |
|
38. | QSXGAPLUS | 2800 | 2100 |
|
39. | WQSXGA | 3200 | 2048 |
|
40. | QUXGA | 3200 | 2400 |
|
41. | QFHD | 3840 | 2160 |
|
42. | WQUXGA | 3840 | 2400 |
|
43. | HD4K | 4096 | 2304 |
|
44. | HXGA | 4096 | 3072 |
|
45. | WHXGA | 5120 | 3200 |
|
46. | HSXGA | 5120 | 4096 |
|
47. | WHSXGA | 6400 | 4096 |
|
48. | HUXGA | 6400 | 4800 |
|
49. | SHV | 7680 | 4320 |
|
50. | WHUXGA | 7680 | 4800 |
|
未来的设备可能会有更多的分辨率,对于Android开发我们不得不像iPhone那样思考兼容问题,苹果要考虑iPad、iPhone 3GS和iPhone 4等屏幕之间的兼容性,对于开发Android而言也不例外,考虑的机型更多。但是常规的我们可能只考虑QVGA,HVGA,WVGA,FWVGA和DVGA,但是抛去了手机不谈,可能平板使用类似 WSVGA的1024x576以及WXGA的1280x768等等。
从上表我们可以统计出目前市面上占绝大多数的分辨率有14种,包含平板和手机。在Android的开发和设计中有不少的设计师提出过一些适应多种分辨率的方案,但是最终多因为不同厂家生产出了不同的型号和分辨率的设备而打败了他们,最后,Google也提出了一些解决方案,比如:
Android2.1之前的版本中,只有一个drawable,而2.1版本之后有drawable-mdpi、drawable-ldpi、drawable-hdpi三个文件夹,这三个主要是为了支持多分辨率。
drawable- hdpi、drawable- mdpi、drawable-ldpi的区别:
(1)drawable-hdpi里面存放高分辨率的图片,如WVGA,FWVGA
(2)drawable-mdpi里面存放中等分辨率的图片,如HVGA
(3)drawable-ldpi里面存放低分辨率的图片,如QVGA
系统会根据机器的分辨率来分别到这几个文件夹里面去找对应的图片。
在开发程序时为了兼容不同平台不同屏幕,建议各自文件夹根据需求均存放不同版本图片。
这也就是提出了,当我们再设计界面是,需要考虑到不同分辨率而提供不同的文件版本,比如在drawable-hdpi文件夹里面有一个send.png的按钮图标,而在drawable-mdpi和drawable-ldpi的文件夹里面也同样有这样一个文件,但是他们的尺寸不一样。系统在装载界面时,会根据界面的尺寸自动找到对应的合适的文件。比如WVGA尺寸的分辨率系统就会找到drawable-hdpi文件夹里面的send.png。
但是这样也就引发了一个问题,就是开发和设计美工的工作量会提高了,而这样做确实能解决目前的燃眉之急。
对于Layout而言,只需要在res目录下创建不同的layout文件夹,比如layout-640x360,layout-800x480,所有的layout文件在编译之后都会写入R.java里,而系统会根据屏幕的大小自己选择合适的layout进行使用。
对于Apple的移动设备而言,只需要按设备的型号定义图片的大小即可。比如按如下定义:iPAD,iPhone,iPhone4S,iPod等。每一种提出一套合适界面,而不用考虑其他的因素,毕竟Apple的设备只有Apple设计,不像Android是有很多的厂家提供设备。