2011-08-04 112 views
2

我想知道什麼時候設備大概需要改變方向,當我們旋轉它。在我的應用程序中,當我旋轉手機設備時,大約需要1到2秒的時間來旋轉屏幕。現在我的問題是,這是正常跨度還是延遲跨度。所以我可以相應地處理它。方向更改默認時間延遲...?

在此先感謝。

+1

這就是我的想法,但有人告訴我你的方向變化很慢,這就是爲什麼我認爲,我更好地向人們諮詢Stackoverflow。我們可以旋轉應用程序而不會破壞活動.. ????? – Rasel

+0

@Rasel ...絕對 –

+1

是的,你可以。 http://developer.android.com/resources/articles/faster-screen-orientation-change.html哦。你還必須閱讀關於onConfigurationChanged http://developer.android.com/guide/topics/resources/runtime-changes.html –

回答

0

add在清單文件中添加android:configChanges="orientation|screenSize"。例如

<activity 
      android:name="example.pangasinantranslator.MainActivity"    
      android:configChanges="orientation|screenSize" 
      android:label="@string/app_name" > 
      <intent-filter> 
       <action android:name="android.intent.action.MAIN" /> 

       <category android:name="android.intent.category.LAUNCHER" /> 
      </intent-filter> 
     </activity> 
1

從一個小小的代碼研究,它看起來至少需要200毫秒才能旋轉視圖。這種延遲是爲了確保設備方向的改變是有意的。

代碼從WindowOrientationListener.java片斷供參考:

// The number of milliseconds for which the device posture must be stable 
// before we perform an orientation change. If the device appears to be rotating 
// (being picked up, put down) then we keep waiting until it settles. 
private static final int SETTLE_TIME_MIN_MS = 200; 
當朝向改變你當前活動的破壞,reloaded.So你可以認爲它需要時間從什麼需要從onCreate方法開始
+0

「這種延遲是爲了確保方向的改變是有意的。」這沒有任何意義。 – Biu

+1

@Biu,在用戶將設備放在桌子上或拿起桌子等情況下,設備的方向可能會短暫改變,但用戶可能並不打算改變視圖的方向。爲防止在這種情況下定位視圖,這種情況非常普遍,代碼確保在旋轉視圖以補償設備的新方向之前,設備的新/改變的方向在一段時間內保持穩定('SETTLE_TIME_MIN_MS') 。希望這是有道理的。 – MemoryLeak

+0

@Biu,對於這個邏輯的代碼級別的理解,請參考WindowOrientationListener.java的'onSensorChanged()'方法(https://android.googlesource.com/platform/frameworks/base/+/android-4.0.4_r1/芯/ JAVA /機器人/視圖/ WindowOrientationListener.java) – MemoryLeak