现在很多游戏和APP都支持通过手机重力感应来切换屏幕方向,Cococs2dx开发的游戏当然也可以支持。只需要修改一小部分东西就可以做到,这里以横屏为例。
如果应用minSdkVersion >= 9 (android2.3以后版本),直接修改AndroidManifest.xml中游戏的activity标签,替换屏幕方向属性为
|
android:name="org.cocos2dx.lib.Cocos2dxActivity"
android:configChanges="orientation|keyboardHidden|keyboard|screenLayout"
android:label="@string/app_name"
android:launchMode="singleTask"
android:screenOrientation="sensorLandscape"
android:theme="@android:style/Theme.NoTitleBar.Fullscreen"
>
|
就可以实现。
但是如果你的minSdkVersion < 8,即android2.2以下版本是不支持改属性值的,所以我们在Cocos2dxActivity中增加sdk版本判断,用代码设置屏幕方向
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
protected
void
onCreate(final
Bundle
savedInstanceState)
{
super.onCreate(savedInstanceState);
//
android 2.3
if
(Build.VERSION.SDK_INT
>=
9)
{
//
ActivityInfo.SCREEN_ORIENTATION_SENSOR_LANDSCAPE == 6
setRequestedOrientation(6);
}
else
{
//
ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE == 0
setRequestedOrientation(0);
}
getWindow().setFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON,
WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
this.init();
Cocos2dxHelper.init(this,
this);
}
|