适应不同设备分辨率总结

移动平设备的分辨率各异,怎么样才能花最小的代价做到最合适的显示呢?

首先描述下多分辨率引起的问题: 比如一张背景图片,我们在不同分辨率的屏幕上显示,如果完全不做缩放处理,那在不同设备看看到的可能就不一致,分辨率低的只能看到图片很小一部分,分辨率高的能看到整个图片但是周围都是黑边。如果我们假设游戏的画面就是这张图片,那这样的情况导致有些该显示的元素显示不出来,比如操作杠在左下角,可能因为设备分辨率低从而显示不了,或者有些高分辨率的设备只用了屏幕很小一块来显示游戏场景。

cocos2dx的解决方式: 设置ResolutionShowAll、ResolutionExactFit、ResolutionNoBorder来实现缩放。

ResolutionShowAll:显示整个图片,图片高宽比不变
ResolutionExactFit:全屏,图片高宽比改变
ResolutionNoBorder:单个方向铺满,另一个方向截断,图片高宽比不变
http://www.cocos2d-x.org/docs/manual/framework/native/wiki/detailed-explanation-of-multi-resolution/zh

cocos2d的方式固然解决了上面提出的问题,可以保证至少完整显示图片的一个边,又保证不会在两个方向上同时有黑边。但是还是会有黑边或者截断的可能。然而对于游戏开发可能更好的方式,因为通常背景场景比屏幕大,而且只显示一部分很正常(比如COC,我叫MT),所以这部分可以不用处理,只要保证屏幕能显示其必要元素或者玩家可以拖动场景。UI则通过停靠来定位其位置,比如摇杆就靠在屏幕左下角某个相对位置。要背景场景足够大,应该为分辨率区别较大的设备提供不同的资源(低清,普清,高清),为高宽比区别较大的设备提供不同的UI布局。

常见分辨率: IOS:

480x320px, 3:2 (iPhone, iPhone 3G, iPhone 3Gs, iPod Touch 1st Gen—3rd Gen)
960x640px, 3:2 (iPhone 4, iPhone 4S, iPod Touch 4th gen)
1136x640px, 71:40 (iPhone 5, iPhone 5c, iPhone 5S, iPod Touch 5th gen)
1024x768px, 4:3 (iPad 1st gen, iPad 2, iPad Mini)
2048x1536px, 4:3 (iPad 3rd gen, iPad 4th gen, iPad Air, iPad mini 2nd gen)
Android:

16:9, as in 1280x720px
16:10, as in 1680x1050px
5:3, as in 1280x768px
3:2, as in 960x640
4:3, as in 1024x768

么有6和6plus的呀?