среда, 14 марта 2012 г.

Android. Andengine. Разработка под различные разрешения экрана

Вот небольшой код, который можно использовать для автоматической установки разрешения экрана. Вместо прямого объявления

public static final int CAMERA_WIDTH = 720;
public static final int CAMERA_HEIGHT = 480;

и инициализации EngineOptions в явном виде

EngineOptions options = new EngineOptions(
      true
    , ScreenOrientation.LANDSCAPE
    , new RatioResolutionPolicy( CAMERA_WIDTH, CAMERA_HEIGHT )
    , mCamera 
);

пишем функцию:

private float getScreenResolutionRatio() {
        DisplayMetrics dm = new DisplayMetrics();
        getWindowManager().getDefaultDisplay().getMetrics(dm);

        return ((float) dm.widthPixels) / ((float) dm.heightPixels);
}

И соответственно инициализация EngineOptions принимает вид похожий на следующий:

new EngineOptions(
              true                                                        
            , ScreenOrientation.LANDSCAPE_FIXED                            
            , new RatioResolutionPolicy( getScreenResolutionRatio() )
            , mCamera                                                          
);

Комментариев нет: