我想知道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()
如果这对您没有帮助,您应该仔细阅读这篇文章,这确实对我有很大帮助。
希望它也能帮助您