近期在使用fairygui做ui界面时,为了让所做的ui充满整个屏幕,为UIRoot添加了 setcontentScaleFactor函数,函数参数写的是屏幕分辨率大小,我希望它可以缩放至屏幕的高度 ,然而并没有什么效果,查询官网教程得知:
因此函数内应该写的是设计分辨率,他会一这个大小为基础来缩放。
高度优先的适配
一些UI设计师会使用高度优先的适配方法,也就是固定选取垂直边的比例,这种设计方法保证了UI界面垂直方向的内容总是布满,
而水平方向两边均预留只放置装饰内容的空间。例如设计分辨率是1136×640,那么设计师只在中间960×640的空间内放置重要内容,
而两边各88像素的空间上的内容是留白的,是可以随时牺牲掉的。例3:实际分辨率是1136×640时,我们通过调用
GRoot.inst.setContentScaleFactor(960,640, ScreenMathMode.MatchHeight)
获得contentScaleFactor=1。这时GRoot的大小为960×640,而全屏界面的大小为1136×640,我们重新设置它的x坐标使其符合设计师的要求,即
someComponent.x = (GRoot.inst.width – someComponent.width)/2;
左边缘和右边缘将会被屏幕边缘裁剪掉。
例4:实际分辨率是1280×720,通过调用
GRoot.inst.setContentScaleFactor(960,640,ScreenMathMode.MatchHeight)将获得contentScaleFactor=1.125。
这时GRoot的大小为1136×640,如果有需要,我们可以重新调整组件大小使之满屏。