Android 设备上的 Cocos2dx 横向和纵​​向

Cocos2dx Landscape and Portrait on Android Devices

您好,我正在学习cocos2dx。我正在以纵向视图构建此游戏。问题是图像太小了。为什么?

landscape

portrait

还有如何让它隐藏导航栏?

对于 AndroidManifest.xml 中的纵向,将屏幕方向更改为纵向:

 <activity android:name="org.cocos2dx.cpp.AppActivity"
                  android:label="@string/app_name"
                  android:screenOrientation="portrait"
                  android:theme="@android:style/Theme.NoTitleBar.Fullscreen"
                  android:configChanges="orientation">

同时在 AppDelegate.cpp 中设置合适的设计分辨率(例如当它是 960x640 现在它应该是 640x960 对于 potrait)。

至于隐藏导航栏,您必须将目标 sdk 级别更改为 api 级别 19 (kitkat),然后更改 AppActivity class 实现如下:

public class AppActivity extends Cocos2dxActivity {
    private Cocos2dxGLSurfaceView glSurfaceView;

    public Cocos2dxGLSurfaceView onCreateView()
    {
        glSurfaceView = new Cocos2dxGLSurfaceView(this);
        this.hideSystemUI();
        glSurfaceView.setEGLConfigChooser(5, 6, 5, 0, 16, 8);

        return glSurfaceView;
    }

    public void onWindowFocusChanged(boolean hasFocus)
    {
        super.onWindowFocusChanged(hasFocus);
        if (hasFocus)
        {
            this.hideSystemUI();
        }
    }

@TargetApi(Build.VERSION_CODES.KITKAT)
    private void hideSystemUI()
    {
        if (Build.VERSION.SDK_INT >= 19) {
            glSurfaceView.setSystemUiVisibility(
                    Cocos2dxGLSurfaceView.SYSTEM_UI_FLAG_LAYOUT_STABLE 
                    | Cocos2dxGLSurfaceView.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
                    | Cocos2dxGLSurfaceView.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
                    | Cocos2dxGLSurfaceView.SYSTEM_UI_FLAG_HIDE_NAVIGATION
                    | Cocos2dxGLSurfaceView.SYSTEM_UI_FLAG_FULLSCREEN
                    | Cocos2dxGLSurfaceView.SYSTEM_UI_FLAG_IMMERSIVE_STICKY);
        }
    }
}

这仅适用于 android 4.4+ 设备,在较旧的设备上什么也做不了。