这篇文章给大家介绍怎么在android中利用活动进行横竖屏切换,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。
<强>设置屏幕的方向强>
<强>简介强>
值描述不明默认值。系统自动选择屏幕方向后面跟活动堆栈中的下面一个活动的方向一致景观横屏方向,显示的宽比高长肖像竖屏方向,显示的高比宽长传感器由设备的物理方向传感器决定,如果用户旋转设备,这屏幕就会横竖屏切换nosensor忽略物理方向传感器,这样就不会随着用户旋转设备而横竖屏切换了(“unspecified"设置除外)用户用户当前首选的方向reverseLandscapeAPI 9以上,反向横屏reversePortraitAPI 9以上,反向竖屏sensorLandscapeAPI 9以上,横屏,但是可以根据物理方向传感器来切换正反向横屏sensorPortraitAPI 9以上,竖屏,但是可以根据物理方向传感器来切换正反向竖屏fullSensorAPI 9以上,上下左右四个方向,由物理方向传感器决定lockedAPI 18以上,锁死当前屏幕的方向 <强>第一种强>
我们可以在AndroidManifest清单文件里面制定活动的方向
& lt;活动 android: name=安拍?view.main.MainActivity" android:才能screenOrientation=皃ortrait"比; & lt;才能intent-filter> ,,,& lt; action android: name=癮ndroid.intent.action.MAIN"/比; ,,,& lt; category android: name=癮ndroid.intent.category.LAUNCHER"/比; & lt;才能/intent-filter> & lt;/activity>
这样横竖屏切换的时候不会重新创建活动
<强>第二种强>
setRequestedOrientation (ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE); setRequestedOrientation (ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
<强> Android: Android: configChanges 强>
如果我们不配置配置,当配置发生变化的时候,活动会自动处理它。反之,如果我们配置了相应的配置,当新的配置发生变化的时候,会回调的> & lt;活动活动 android: name=安拍?view.main.MainActivity" android:才能configChanges=発eyboardHidden面向| | screenSize" 祝辞才能; & lt;才能intent-filter> ,,,& lt; action android: name=癮ndroid.intent.action.MAIN"/比; ,,,& lt; category android: name=癮ndroid.intent.category.LAUNCHER"/比; & lt;才能/intent-filter> & lt;/activity> 在api 3.2,以前,我们只需这样配置即可,android: configChanges=発eyboardHidden | orientation"。 & lt;活动 android: name=安拍?view.main.MainActivity" android:才能configChanges=発eyboardHidden | orientation" 祝辞才能; & lt;才能intent-filter> ,,,& lt; action android: name=癮ndroid.intent.action.MAIN"/比; ,,,& lt; category android: name=癮ndroid.intent.category.LAUNCHER"/比; & lt;才能/intent-filter> & lt;/activity>
<强>小结强>
当我们进行了上述的配置,
- <李>
竖屏》横屏> public void onConfigurationChanged (Configuration newConfig), {, super.onConfigurationChanged才能(newConfig);, if 才能;(this.getResources () .getConfiguration () .orientation ==, Configuration.ORIENTATION_LANDSCAPE), {, ,,,//,加入横屏要处理的代码, ,,},else if (this.getResources () .getConfiguration () .orientation ==, Configuration.ORIENTATION_PORTRAIT), {, ,,,//,加入竖屏要处理的代码, ,,}, }
如果我们同时设置了android: configChanges=発eyboardHidden面向| | screenSize"和android: screenOrientation=皃ortrait",那又会是怎样的呢?
如果我们打开系统的自动旋转屏幕,旋转屏幕,系统不会发生变化,也不会调用活动的>//,去掉ActionBar requestWindowFeature (Window.FEATURE_NO_TITLE);,//,设置全屏 getWindow () .setFlags (WindowManager.LayoutParams.FLAG_FULLSCREEN WindowManager.LayoutParams.FLAG_FULLSCREEN);
在实际项目中,我们通常会固定我们应用的屏幕方向,只对一些特定的需要切换屏幕的活动做处理,那我们如何统一设置屏幕的方向呢?
第一种方法,复制张贴,在AndroidManifest清单文件里面的每一个活动标签增加如下标签。
& lt; activity android: name=?MainActivity" ,,,,android: screenOrientation=皃ortrait" ,,,,在 & lt;/activity>
第二种方法,刚开始我直接在AppTheme里面设置android: screenOrientation,但是没有效果,刚开始我也很纳闷,后面查阅了官网文档,描述如下,才解决了疑问。