2

cocos2d-x が Android の XHDPI モードをサポートしているかどうかを知りたいのですが、サポートしている場合はどうすればよいですか?

4

2 に答える 2

0

あなたは単に機能を使うことができますCCDevice::getDPI()

それが役に立たない場合は、これを注意深く読んでください。本当に役に立ちました。

それもあなたに役立つことを願っています

于 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 に答える