2012-11-08 49 views

回答

0

是的,你可以做到這一點。 爲此,您必須編寫一個本地函數,它將返回設備的dpi。 因此,您可以設置資源的目錄。 這是java中的本機代碼,它將返回屏幕的dpi。

寫代碼Cocos2dxActivity(對了cocos2d-x的Android庫文件)

static int dpiValue; 
DisplayMetrics dm = new DisplayMetrics(); 
getWindowManager().getDefaultDisplay().getMetrics(dm); 
dpiValue = dm.densityDpi; 

public static int deviceDPI() 
{ 
    return dpiValue; 
} 

現在您的AppDelegate.cpp你可以得到這個值,並把資源文件夾相應

這裏是例子代碼爲

//getting dpi in case of android 
JniMethodInfo t; 
JniHelper::getStaticMethodInfo(t 
     , "org/cocos2dx/lib/Cocos2dxActivity" 
     , "deviceDPI" 
     , "()I"); 
     int deviceDPI = t.env->CallIntMethod(t.classID, t.methodID, NULL); 
CCLog("DPI of screen is %d", deviceDPI); 
if(deviceDPI <= 120) 
{ 
    //ldpi 
} 
else if(deviceDPI <= 160) 
{ 
    //mdpi 
} 
else if(deviceDPI <= 240) 
{ 
    //mdpi 
} 
else 
{ 
    //xhdpi 
} 

希望這可以幫助你! :)

0

你可以簡單的使用功能CCDevice::getDPI()

如果不幫你,你應該仔細閱讀this one,它真的幫了我很多。

希望它可以幫助你太