[英]Android: listen for Orientation change?
我將如何監聽 Android 中的方向變化? 並在用戶切換到橫向時做某些事情?
你有幾個選擇:
使用OrientationEventListener ,它有一個名為onOrientationChanged的方法。
使用配置更改:
在您的清單中,輸入:
<activity android:name=".HelloAndroid"
android:label="@string/app_name"
android:configChanges="orientation">
並且,在您的 Activity 中,覆蓋onConfigurationChanged
:
@Override
public void onConfigurationChanged(Configuration newConfig) {
super.onConfigurationChanged(newConfig);
int newOrientation = newConfig.orientation;
if (newOrientation == Configuration.ORIENTATION_LANDSCAPE) {
// Do certain things when the user has switched to landscape.
}
}
這是一個很好的教程。
在您的活動中,您可以重寫此方法以偵聽方向更改並實現您自己的代碼。
public void onConfigurationChanged (Configuration newConfig)
Configuration
Class 有一個 int 常量ORIENTATION_LANDSCAPE
和ORIENTATION_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">
從橫向翻轉到反向橫向或從縱向翻轉到反向縱向的方向事件怎么樣?
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.