поддерживает ли cocos2d-x режим Android XHDPI?

Я хочу знать, поддерживает ли cocos2d-x режим Android XHDPI, и если да, то как это сделать?


person user1809139    schedule 08.11.2012    source источник


Ответы (2)


Да, вы можете это сделать. Для этого вам придется написать собственную функцию, которая вернет вам 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
}

Надеюсь, это поможет вам!! :)

person Ganesh Somani    schedule 13.02.2013

Вы можете просто использовать функцию CCDevice::getDPI()

Если это вам не поможет, прочтите этот осторожно, это действительно очень помогло мне.

Надеюсь, это поможет и вам

person Ganesh Somani    schedule 06.08.2013