NGUI的UI适配

写里有一篇文章写的比较具体

https://www.cnblogs.com/liujidong/p/5650305.html

但对于需要手动计算适配后的宽高的计算方式没有说得太明晰

比如我的一个项目中开发分辨率为1280*720,需要在屏幕的指定区域渲出一个Webview页,Ngui的适配方式是Constrained ContentWidth和ContentHeight都勾选.在开发时,我们要画Webview的区域以屏幕为中心的区域为左-410 上 300 右354, 下-217,这个渲染区域需要传的Android实现中,那问题来的,Android实现中,这个区域在最终分辨率下是多大?

我们以Screen代表最终屏幕分辨率大小,origin_w, origin_h代表开发分辨率

传入Android代码中的数据以边界大小来传入,不妨按left, top, right, bottom来传入

那么在 1280X720时,取区域离中心的距离,应当为rect0={410, 300, 354, 217}

那么最终分辨率下这个区域的大小又是多少呢

float ar = (float)Screen.width/Screen.height;
float mr = 1280.0f/720;
if( mr >= ar ) //按宽度适配
{
    float r = Screen.width/1280.0f;
    for( int i = 0; i < 4; i++)
    {
        rect0[i] *= r;
    } 
}
else 
{
    float r = Screen.height/720.0f;
    for( int i = 0; i < 4; i++)
    {
        rect0[i] *= r;
    }
}

 

上一篇:NGUI的一些总结


下一篇:【纯感慨】学无可学,破茧重生