我想知道cocos2d-x是否支持android的XHDPI模式,如果支持,怎么做?
问问题
359 次
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
于 2013-08-06T05:57:37.190 回答