cocos2d-x 是否支持 Android 的 XHDPI 模式?



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

是的,您可以做到这一点。为此,您必须编写一个本机功能,该功能将返回设备的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
}

希望这对您有帮助!:)

您可以简单地使用函数CCDevice::getDPI()

如果这对您没有帮助,您应该仔细阅读这篇文章,这确实对我有很大帮助。

希望它也能帮助您

最新更新