出自http://eigo.co.uk/News-Article.aspx?NewsArticleID=103

How to lock the orientation

In the onCreateDialog(int) event of the activity use the setRequestedOrientation(int) method to set the screen orientation to your chosen setting. The activity will stay in this orientation regardless of if the device is tilted or not.

[Code sample – How to lock the orientation]
/**Calledwhentheactivityisfirstcreated.*/
@Override
public void onCreate ( BundlesavedInstanceState )
{
super .onCreate ( savedInstanceState ) ;
this .setRequestedOrientation (
ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE ) ;
}

How to detect the current orientation

To programmatically detect the current orientation of the activity use the following code snippet. The orientation property of the Configuration class returns three possible values corresponding to Landscape, Portrait and Square.

[Code sample – How to detect the current orientation]
switch ( this .getResources () .getConfiguration () .orientation )
{
case Configuration.ORIENTATION_PORTRAIT:
//Dosomethinghere
break ;
case Configuration.ORIENTATION_LANDSCAPE:
//Dosomethinghere
break ;
case Configuration.ORIENTATION_SQUARE:
//Dosomethinghere
break ;
default :
thrownew Exception ( "Unexpectedorientationenumerationreturned" ) ;
break ;
}

Example : Locking rotation while performing an action.

You might wish to disable the screen rotation whilst performing an action or by user command, to do this you need to combine the above samples to detect the current orientation and lock the display to that orientation.

[Code sample – Locking rotation while performing an action]
//Setsscreenrotationasfixedtocurrentrotationsetting
private void mLockScreenRotation ()
{
//Stopthescreenorientationchangingduringanevent
switch ( this .getResources () .getConfiguration () .orientation )
{
case Configuration.ORIENTATION_PORTRAIT:
this .setRequestedOrientation (
ActivityInfo.SCREEN_ORIENTATION_PORTRAIT ) ;
break ;
case Configuration.ORIENTATION_LANDSCAPE:
this .setRequestedOrientation (
ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE ) ;
break ;
}
}

Once your action has completed you may wish to enable screen rotation again, see the next section for an example on how to do this.

How to re-enable screen rotation

To enable the orientation to be automatically changed on device tilt simply pass thesetRequestedOrientation(int) method the enumeration value for an unspecified orientation.

[Code sample – How to re-enable screen rotation]
//allowscreenrotationsagain
this .setRequestedOrientation (
ActivityInfo.SCREEN_ORIENTATION_UNSPECIFIED ) ;

异步处理 的时候如果转屏 异步处理就会停止,附件就是防止这种情况发生

更多相关文章

  1. Android(安卓)Studio 使用技巧(1)
  2. Android(安卓)Studio 使用技巧(3)
  3. Android中事件处理之TouchListener实现步骤
  4. Android(安卓)图片透明度处理代码
  5. android ImageUtils 图片处理工具类
  6. android 添加对back按钮的处理,点击提示退出
  7. android HTTP 通信, XML 解析, 通过 Hander 实现异步消息处理
  8. android ImageUtils 图片处理工具类
  9. [转]处理各种触摸事件

随机推荐

  1. Android 监听ContentProvider中数据的变
  2. 我的Android环境搭建
  3. 在线查看android源代码的3种方式
  4. OpenGL ES for Android 绘制立方体
  5. Android Studio打不开虚拟机,两种情况详解
  6. Android Volley的使用
  7. android隐藏EditText光标
  8. Storm——Android SQLite数据库管理类库
  9. Android MQTT 实现Push
  10. Android(安卓)Studio Gradle Sync同步慢