cocos2d-x が Android の XHDPI モードをサポートしているかどうかを知りたいのですが、サポートしている場合はどうすればよいですか?
質問する
359 次
2 に答える
0
于 2013-08-06T05:57:37.190 に答える
0
はい、できます。そのためには、デバイスの dpi を返すネイティブ関数を作成する必要があります。したがって、リソースのディレクトリを設定できます。画面の dpi を返す Java のネイティブ コードを次に示します。
このコードを 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 に答える