0

私は Android Andengine を使用してゲームを開発しています。カメラの幅 720 とカメラの高さ 480 を使用していますが、360 x 480 などのローエンド デバイスでは、使用しているすべての画像が圧縮されています。コードは

public Engine onLoadEngine() {
    mCamera = new Camera(0, 0, CAMERA_WIDTH, CAMERA_HEIGHT);
    return new Engine(new EngineOptions(true, ScreenOrientation.LANDSCAPE, 
            new FillResolutionPolicy(), mCamera).setNeedsSound(true));
}

解決策はありますか?

4

1 に答える 1

1

onCreateEngineOptions() で RatioResolutionPolicy を指定する必要があります。これにより、アクティビティが必要なサイズにスケーリングされます。次のようなメソッドで現在の画面サイズを取得できます。

private DisplayMetrics getScreenResolutionRatio() {
    DisplayMetrics dm = new DisplayMetrics();
    requestWindowFeature(Window.FEATURE_NO_TITLE);
    getWindowManager().getDefaultDisplay().getMetrics(dm);
    return dm;
}

次に、RationResolutionPolicy を指定します。

public EngineOptions onCreateEngineOptions() {
    RatioResolutionPolicy policy = new RatioResolutionPolicy(getScreenResolutionRatio().width, getScreenResolutionRatio().height);
    return new EngineOptions(true, ScreenOrientation.PORTRAIT_SENSOR, policy, this.mCamera);
}
于 2012-10-03T09:42:30.970 に答える