现在很多游戏和APP都支持通过手机重力感应来切换屏幕方向,Cococs2dx开发的游戏当然也可以支持。只需要修改一小部分东西就可以做到,这里以横屏为例。
如果应用minSdkVersion >= 9 (android2.3以后版本),直接修改AndroidManifest.xml中游戏的activity标签,替换屏幕方向属性为
1
2
3
4
5
6
|
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
)
;
}
|