2011-06-23 59 views
1

我已將傳感器的應用方向設置爲正確,我正在讓應用處理所有方向更改。在應用程序運行時,一切都按預期工作。啓動活動時禁用方向動畫

問題發生在應用程序的初始啓動期間。如果手機處於肖像模式,並且用戶啓動了我的應用程序,我會看到我的應用程序背景,然後它將執行橫向視圖的方向旋轉,因爲我在我的應用程序中使用了setRequestedOrientation()。我想要改變方向,但我不想要它隨附的旋轉動畫。我只是想在人像和風景之間進行硬切換。

我試過在onCreate,surfaceChanged或onConfigurationChanged中使用overridePendingTransition(0,0),但沒有運氣。還有什麼地方我應該放這個?我相信使用(0,0)應該禁用未決的動畫。

如果我將系統設置 - >顯示 - >動畫設置爲無,我會得到期望的效果。我試圖爲我的活動設置樣式,但這也不起作用。

+0

我不確定我完全理解你的問題。您是否在初次啓動應用程序時問如何解決問題?或者針對通過整個應用程序發生的問題的解決方案? – Genzume

+0

剛剛啓動應用程序時。 – user812525

+0

在您的應用程序的OnCreate上可以將全局變量設置爲1,並在onOrientationChange代碼中檢查該變量。如果是1,不要讓它重新定向。那麼當你的應用程序被完全加載時,將該值設置爲0?有點像多線程可以鎖定某些代碼。 – Genzume

回答

1

如果問題只在應用程序啓動時,你可以做到這一點,迫使橫向無動畫:

<?xml version="1.0" encoding="utf-8"?> 
<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
    package="com.example.myapp" 
    android:versionCode="1" 
    android:versionName="1.0"> 

    <application android:icon="@drawable/icon" 
       android:label="@string/app_name"> 

     <activity android:name="com.example.myapp.MyActivity" 
        android:screenOrientation="landscape"> 

     ... 

     </activity> 

    </application> 
</manifest> 

然後你就可以通過編程以後更改android:screenOrientation設定的代碼,讓景觀如果你願意的話可以去portatit。