-
横屏竖屏
config.json.png
这个是由工程目录下的config.json
文件中
的isLandscape
控制的,为true则为横屏,为false是竖屏
其中 width 和 height 是控制模拟器的大小的 -
适配
适配最重要的概念是设计分辨率
设计分辨率:指的是你的页面设计时采用的分辨率
选择何种设计分辨率?
选择哪种分辨率,其实就是说市面上哪种分辨率的机型最多,你就用哪种,比如你的设计分辨率是960x640的,如果所有机器都是这个分辨率,那么显示出来的效果就和你想要的效果是一样的,如果有机型器1136x640,那显然你设计的界面在这种机型上会在长度上不够而出现黑边。 -
适配的种类
市面上的机型种类可谓繁多,要想适配每一种机型是不容易的,其中有几种适配方案-
FIXED_WIDTH
这个的意思是按照宽度来适配,就是保证宽度完美显示,如果你的设计分辨率是100x200,但是机型的实际分辨率是200x300,那么cocos2dx会将这个界面扩大两倍,也就是按照宽度来缩放,不管高度如何 -
FIXED_HEIGHT
这个意思和上面刚好相反,按照高度来适配,保证高度完美显示,而不管宽度 -
NO_BORDER
这个是结合以上两种,保证界面能完整显示在屏幕中,举个例子,如果设计分辨率是100x200,实际分辨率是200x300,首先计算宽度的比例是2,高度的比例是1.5,所以为了保证都能显示,将采用1.5作为缩放比例。这种情况下是会有界面损失的
-
-
SHOW_ALL
这个会将整个界面显示出来,它和N0_BORDER的区别在于,这种方式会将界面完整的显示出来,但是会出现黑边 -
ui的适配
了解了适配的基本原理,在来看看如何适配ui的,如果我要实现这样的效果,在左上角放一个按钮,设计分辨率是960x640,适配类型选择NO_BORDER,那很显然,如果在某种机型上,这个按钮肯定有一部分会处在黑暗中,要想让它正确的显示出来,就要用到相对坐标这个东西了。
在界面中放一个容器,然后把你要的ui放进去,比如这个按钮,然后设置这个按钮相对父容器的上左位置,来确定它在父容器中的位置,现在不管怎样,这个按钮都会在这个父容器的左上角了,然后再代码中,我们只需要动态的设置这个父容器的大小和屏幕一样大,那这个按钮就一定会显示在左上角了。
local size = cc.Director:getInstance():getVisibleSize()
获取屏幕大小
网友评论