2

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

4

2 回答 2

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
}

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

于 2013-02-13T05:45:00.887 回答
0

您可以简单地使用该功能CCDevice::getDPI()

如果这对你没有帮助,你应该仔细阅读这篇文章,它真的对我帮助很大。

希望对你也有帮助

于 2013-08-06T05:57:37.190 回答