首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 移动开发 > 移动开发 >

转屏的处置

2012-08-31 
转屏的处理出自http://eigo.co.uk/News-Article.aspx?NewsArticleID103How to lock the orientationIn th

转屏的处理

出自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]/**?Called?when?the?activity?is?first?created.?*/
@Override
public?void?onCreate(Bundle?savedInstanceState)?
{
????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:
??//?Do?something?here
??break;
case?Configuration.ORIENTATION_LANDSCAPE:
??//?Do?something?here
??break;
case?Configuration.ORIENTATION_SQUARE:
??//?Do?something?here
??break;
default:
??throw?new?Exception("Unexpected?orientation?enumeration?returned");
??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]//?Sets?screen?rotation?as?fixed?to?current?rotation?setting
private?void?mLockScreenRotation()
{
??//?Stop?the?screen?orientation?changing?during?an?event
????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]//?allow?screen?rotations?again
this.setRequestedOrientation(
ActivityInfo.SCREEN_ORIENTATION_UNSPECIFIED);

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

热点排行