Android:听取方向改变?

我将如何听取在Android的方向变化? 并在用户切换到风景时做某些事情?

Solutions Collecting From Web of "Android:听取方向改变?"

你有几个select:

  • 使用OrientationEventListener ,它有一个名为onOrientationChanged的方法。

  • 使用configuration更改:

在你的清单中,把:

<activity android:name=".HelloAndroid" android:label="@string/app_name" android:configChanges="orientation"> 

并且,在代码中,重写onConfigurationChanged

 @Override public void onConfigurationChanged(Configuration newConfig) { super.onConfigurationChanged(newConfig); setContentView(R.layout.main); // TODO } 

这是一个很好的教程 。

在您的活动中,您可以重写此方法来听取方向更改并实现您自己的代码。

 public void onConfigurationChanged (Configuration newConfig) 

Configuration类有一个int常量ORIENTATION_LANDSCAPEORIENTATION_PORTRAIT ,在那里你可以像这样检查newConfig:

super.onConfigurationChanged(NEWCONFIG);

 int orientation=newConfig.orientation; switch(orientation) { case Configuration.ORIENTATION_LANDSCAPE: //to do something break; case Configuration.ORIENTATION_PORTRAIT: //to do something break; } 

Android 3.2开始 ,您还需要在androidmanifest中添加“ screenSize ”以进行特定的活动

所以你在xml中的活动声明将会变成

 <activity android:name=".ExampleActivity" android:label="@string/app_name" android:configChanges="orientation|screenSize">