Android 设定横屏,禁止屏幕旋转,Activity重置
转载自:
http://blog.csdn.net/u012364372/article/details/51088831
1. 设定屏幕方向
当指定了屏幕的方向后(非SCREEN_ORIENTATION_UNSPECIFIED),屏幕就不会自动的旋转了
有2中方式控制屏幕方向:
1.1 修改AndroidManifest.xml
在AndroidManifest.xml的activity中加入:
横屏:
android:screenOrientation=”landscape”
竖屏:
android:screenOrientation=”portrait”
1.2 setRequestedOrientation
横屏:
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
竖屏:
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
ActivityInfo:
int
|
Constant corresponding to behind in the screenOrientation attribute.
|
|
int
|
SCREEN_ORIENTATION_FULL_SENSOR
Constant corresponding to fullSensor in the screenOrientation attribute.
int
Constant corresponding to fullUser in the screenOrientation attribute.
int
Constant corresponding to landscape in the screenOrientation attribute.
int
Constant corresponding to locked in the screenOrientation attribute.
int
Constant corresponding to nosensor in the screenOrientation attribute.
int
Constant corresponding to portrait in the screenOrientation attribute.
int
SCREEN_ORIENTATION_REVERSE_LANDSCAPE
Constant corresponding to reverseLandscape in the screenOrientation attribute.
int
SCREEN_ORIENTATION_REVERSE_PORTRAIT
Constant corresponding to reversePortrait in the screenOrientation attribute.
int
Constant corresponding to sensor in the screenOrientation attribute.
int
SCREEN_ORIENTATION_SENSOR_LANDSCAPE
Constant corresponding to sensorLandscape in the screenOrientation attribute.
int
SCREEN_ORIENTATION_SENSOR_PORTRAIT
Constant corresponding to sensorPortrait in the screenOrientation attribute.
int
SCREEN_ORIENTATION_UNSPECIFIED
|
Constant corresponding to unspecified in the screenOrientation attribute.
int
|
Constant corresponding to user in the screenOrientation attribute.
int
SCREEN_ORIENTATION_USER_LANDSCAPE
Constant corresponding to userLandscape in the screenOrientation attribute.
int
SCREEN_ORIENTATION_USER_PORTRAIT
Constant corresponding to userPortrait in the screenOrientation attribute.
2. 禁止 屏幕旋转后重置Activity
屏幕旋转后会强制调用Activity.onCreate方法,所以会重置Activity
禁止方法:
修改AndroidManifest.xml
android:configChanges=”orientation”
最近在做Android的播放器,遇到采用以上方法后,仍然出现屏幕旋转后触发Activity.onCreate,经查阅资料后,发现需要添加screenSize处理
具体代码为:
[html] view plaincopy
<embed id="ZeroClipboardMovie_1" src="https://csdnimg.cn/public/highlighter/ZeroClipboard.swf" loop="false" menu="false" quality="best" bgcolor="#ffffff" width="15" height="16" name="ZeroClipboardMovie_1" align="middle" allowscriptaccess="always" allowfullscreen="false" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" flashvars="id=1&width=15&height=16" wmode="transparent" style="box-sizing: border-box;">
- android:configChanges="orientation|keyboardHidden|screenSize"
禁止重置Activity会造成Screen的宽高颠倒, 需要手动修正。