pEGLView->setDesignResolutionSize(480, 320, kResolutionNoBorder);
第三个参数:
kResolutionExactFit:会靠拉伸来填满屏幕,如1024:768=1.3, 480:320=1.5,宽高比不同,图片无法等比缩放来填满屏幕,图片会变形。kResolutionNoBorder: 没有黑边,宽高等比缩放,但缩放比例取宽比和高比之中大的那一个。
kResolutionShowAll:全部显示,宽高等比缩放,但缩放比例取宽比和高比之中小的那一个。
CCSize szVisible = CCDirector::sharedDirector()->getVisibleSize();//在实际设备上能看到的有效区域的宽高
CCPoint posVisible = CCDirector::sharedDirector()->getVisibleOrigin();//这个有效区域的起始坐标
例如:
{
//对屏幕进行设计
CCEGLView::sharedOpenGLView()->setDesignResolutionSize(480, 320, kResolutionNoBorder);
//设计分辨率
CCSize s=CCDirector::sharedDirector()->getWinSize();
//真实屏幕的分辨率
CCSize framesize=CCEGLView::sharedOpenGLView()->getFrameSize();
//可视区域(是图片显示部分) 只有kResolutionNoBorder才会出现这种情况
CCSize visibsize=CCDirector::sharedDirector()->getVisibleSize();
//
CCLog("% f %f",s.width,s.height);
CCLog("% f %f", framesize.width, framesize.height);
CCLog("% f %f",visibsize.width,visibsize.height);
}
所有解决的方法:
//屏幕适配
使用 CCEGLView::sharedOpenGLView()->setDesignResolutionSize(480,320, kResolutionExactFit);即可。