现在我们来看看cocos2dx在安卓下的图片适配是怎么做到的,具体看下面步骤。

在win32下,自动生成的代码中,OpenGLView就是在main.cpp中用setFrameSize设置的大小,如果图片大于这view的大小,只能显示交集的部分,如果小于,则会出现黑边。

在android下,OpenGLView的大小是在Cocos2dxActivity中设置的(每个平台都有一个不一样的main.cpp),使用一个FrameLayout放入OpenGLView,其layout_width设置为fill_parent, 所以其宽是自适应的,但是在上面画的图片是实际的像素大小,如果也要自适应,比如根据OpenGLView的大小缩小或放大,使任何时候宽度都填满整个屏幕,加入类似于以下代码即可:
  1. CCSize winSizeInPixels = CCDirector::sharedDirector()->getWinSizeInPixels();
  2. float scaleX = winSizeInPixels.width/400; //400是实际图片的宽
  3. m_pRoadSprite->setScaleX(scaleX);//实际上就是把m_pRoadSprite的宽度设置为OpenGLView的宽度,但是直接用SetContentSize好像不起作用