概述

Android中屏幕旋转会导致Activity被销毁然后重新创建,这会导致很麻烦的状态存储与恢复问题。虽然有方法可以解决。但是当我们的应用无需旋转屏幕时,主动禁用屏幕旋转是一个不错的选择。


描述

方式一:

步骤:
  1. 在Android中要让一个程序的界面始终保持一个方向,不随手机方向转动而变化的办法: 只要在AndroidManifest.xml里面配置一下就可以了。
  2. 在AndroidManifest.xml的activity(需要禁止转向的activity)配置中加入 android:screenOrientation=”landscape”属性即可(landscape是横向,portrait是纵向)。
  3. 要避免在转屏时重启activity,可以通过在androidmanifest.xml文件中重新定义方向(给每个activity加上 android:configChanges=”keyboardHidden|orientation”属性),并根据Activity的重写 onConfigurationChanged(Configuration newConfig)方法来控制,这样在转屏时就不会重启activity了,而是会去调用 onConfigurationChanged(Configuration newConfig)这个钩子方法。
例如
@Override public void onConfigurationChanged(Configuration newConfig) { super.onConfigurationChanged(newConfig); if(newConfig.orientation==Configuration.ORIENTATION_LANDSCAPE) {//横向 setContentView(R.layout.file_list_landscape);} else {//竖向 setContentView(R.layout.file_list);}}

在模拟器中可以按 CTL+F11 模拟做屏幕旋转。


方式二

另外一种方式就是禁用方向传感器:从Android 1.5开始系统可以设置Sensor旋转屏幕,如果你的应用在部分方面没有处理好横屏和竖屏的切换,可能需要强制禁用方向感应器Sensor,相关的方法可以在androidmanifest.xml的相关activity中加入android:screenOrientation="nosensor"属性。

更多相关文章

  1. Android屏幕分辨率正确获取及PX,DPI,DP,SP等的对应关系
  2. Android(安卓)matrix 控制图片的旋转、缩放、移动
  3. Android系统配置数据库注释(settings.db)
  4. [Android(安卓)NDK]Android(安卓)JNI开发例子 ---3 在JNI中实现o
  5. android 分辨率及密度详细
  6. Android屏幕常亮
  7. android 自定义view
  8. android解决坚屏拍照和保存图片旋转90度的问题,并兼容4.0
  9. Android(安卓)屏幕设置

随机推荐

  1. android 一些数据转换方法
  2. Unity3d - Android Build : Android SDK
  3. Android2.2 官方下载地址
  4. Android写本地文件
  5. Use adb on Mac OS
  6. android日历实现__GO桌面版&&开源收藏版
  7. Android(安卓)JNI Java参数类型与本地参
  8. android音频架构
  9. Android(安卓)解决启动页白屏或者黑屏的
  10. Android--Alarm,定时闹钟