cocos2d-x支持android的XHDPI模式吗?

时间:2012-11-08 12:15:07

标签: android cocos2d-x

我想知道cocos2d-x是否支持android的XHDPI模式 如果是的话,怎么做?

2 个答案:

答案 0 :(得分: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
}

希望这对你有所帮助!! :)

答案 1 :(得分:0)

您只需使用CCDevice::getDPI()

功能即可

如果这对您没有帮助,您应该仔细阅读this one,这对我帮助很大。

希望它也能帮到你