Android 设备上的 Cocos2dx 横向和纵向
Cocos2dx Landscape and Portrait on Android Devices
您好,我正在学习cocos2dx。我正在以纵向视图构建此游戏。问题是图像太小了。为什么?
还有如何让它隐藏导航栏?
对于 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+ 设备,在较旧的设备上什么也做不了。
您好,我正在学习cocos2dx。我正在以纵向视图构建此游戏。问题是图像太小了。为什么?
还有如何让它隐藏导航栏?
对于 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+ 设备,在较旧的设备上什么也做不了。