2014-02-24 71 views
1

尝试为Android设备选择设计分辨率大小时遇到​​问题。选择Cocos2dx中Android设备的设计分辨率大小

我只想拥有4-5个资源(图片,背景,精灵等),但可以在任何Android设备上运行。我能做什么合适的设计解决方案?例如,320x480,720x1280还有什么?

你能给我一些建议来选择吗?

感谢

回答

4
In your AppDelegate class: 

这项决议是风景模式

bool AppDelegate::applicationDidFinishLaunching() 
{ 

    /********************** CCEGLView::sharedOpenGLView()->setDesignResolutionSize() //set design resolution size and mode 
    ********************* CCEGLView::sharedOpenGLView()->getFrameSize() //get screen resolution 
    *********************CCDirector::sharedDirector()->getWinSize() //get design resolution 
    ********************* CCDirector::sharedDirector()->getVisibleSize() //get design resolution’s visable area size 
    ********************* CCDirector::sharedDirector()->getVisibleOrigin() //get origin of the visable area of design resolution*/ 


    // initialize director 
    CCDirector* director = CCDirector::sharedDirector(); 
    CCEGLView* EGLView = CCEGLView::sharedOpenGLView(); 

    director->setOpenGLView(EGLView); 


    CCSize screenSize = EGLView->getFrameSize(); 
    CCSize designSize = CCSizeMake(1024,614); 
    EGLView->setDesignResolutionSize(designSize.width,designSize.height, kResolutionExactFit); 


    CCLog("Screen Size:%f %f",screenSize.width,screenSize.height); 


    if(screenSize.height >= 320 && screenSize.height <= 480) 
    { 
     CCSize resourceSize = CCSizeMake(800, 480); 
     director->setContentScaleFactor(resourceSize.height/screenSize.height); 
     CCLog("Resolution Scale OF Default =%f",resourceSize.height/screenSize.height); 

    } 


    else if(screenSize.height >= 540 && screenSize.height < 720) 
    { 

     CCSize resourceSize = CCSizeMake(960, 540); 
     director->setContentScaleFactor(resourceSize.height/screenSize.height); 
     CCLog("Resolution Scale OF Karboon=%f",resourceSize.height/screenSize.height); 
    } 


    else if (screenSize.height >= 720 && screenSize.height < 800) 
    { 

     CCSize resourceSize = CCSizeMake(1280, 720); 
     director->setContentScaleFactor(resourceSize.height/screenSize.height); 
     CCLog("Resolution Scale OF NOTE=%f",resourceSize.height/screenSize.height); 

    } 

    else if(screenSize.height > 800) 
    { 
     CCSize resourceSize = CCSizeMake(1920, 1080); 
     director->setContentScaleFactor(resourceSize.height/screenSize.height); 
     CCLog("Resolution Scale OF Nexus=%f",resourceSize.height/screenSize.height); 

    } 

    else 
    { 


     director->setContentScaleFactor(1); 
     CCLog("Resolution Scale OF S Advance=%f"); 

    } 
+0

我想要设计这样的分辨率分辨率320x480,720x1280的例子,还有什么? – lolyoshi

+0

在上面的代码中,我使用1024x614分辨率的资源。所以,如果你想这个解决方案应该在每个Android设备上都可以使用上面的代码。 –

+0

也许你误解了我的问题。我不需要代码,我只需要我可以使用哪种大小的分辨率来设计分辨率,使精灵,图像等适合所有Android设备的屏幕大小?例如,我要创建320x460,720x1280的图片,背景,还有什么? – lolyoshi