2012-03-07 114 views
5

我通過添加「super.setIntegerProperty(」splashscreen「,R.drawable.splash);」在DefaultActivity中的super.loadURL ...行之前。強制Phonegap(Android)啓動屏幕方向

有沒有辦法只鎖定啓動屏幕的方向肖像,而不鎖定整個應用程序?

回答

1

如果您使用的是最新的PhoneGap(DroidGap)或Apache科爾多瓦的版本通過在Android更改screenOrientation可以強制屏幕方向爲橫向。 xml文件。得到的DroidGap「實例活動」應該是這個樣子:

 <activity 
     android:name="org.apache.cordova.DroidGap" 
     android:label="@string/app_name" 
     android:configChanges="orientation|keyboardHidden" 
     android:screenOrientation="landscape"   
     > 
     <intent-filter> 
     </intent-filter> 
    </activity> 
+6

這不會將整個應用程序的方向鎖定爲橫向嗎?原始問題是關於將啓動畫面方向鎖定到肖像,而不鎖定整個應用程序的方向。 – 2012-07-12 19:36:32

0

寫濺射屏幕活動的onCreate方法內執行以下操作:

setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);

+0

謝謝,但問題是與PhoneGap的,在啓動畫面不是一個單獨的活動。如果我強迫這個活動的方向,我會強制整個應用程序。 – user992804 2012-03-07 08:25:51

0

在AndroidManifest.xml中添加這一行:

4

許多搜索後,我發現,解決閃屏方向的正確方法是管理使用此代碼兩個圖像到您的MainActivity

if (getResources().getConfiguration().orientation == 2) { 
     super.setIntegerProperty("splashscreen", R.drawable.splashlandscape); 
     Log.d("Orientation", "Landscape"); 
    } 
    else { 
     super.setIntegerProperty("splashscreen", R.drawable.splashportrait); 
     Log.d("Orientation", "Portrait"); 
    } 
+0

這工作。謝謝 !!! – Rajaraman 2013-05-31 06:33:16

5

以下解決方案適用於Android和iOS上的Cordova 3+。它只鎖定閃屏的方向,然後在應用程序運行後解鎖。

固定取向config.xml中:

<preference name="orientation" value="portrait" /> 

然後用這個screen orientation plugin來解鎖一次應用程序已初始化:

document.addEventListener("deviceready", function(){ 
    screen.unlockOrientation(); 
}, false); 
+0

謝謝!奇蹟般有效! – Lotus 2016-02-01 14:44:39