写里有一篇文章写的比较具体
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;
}
}