2013-06-03 79 views
3

嗨,我已經與ScreenOrientation.LANDSCAPE_SENSOR創建的andengine應用:Andengine LANDSCAPE_SENSOR

@Override 
public EngineOptions onCreateEngineOptions() { 
    DisplayMetrics displaymetrics = new DisplayMetrics(); 
    getWindowManager().getDefaultDisplay().getMetrics(displaymetrics); 
    CAMERA_WIDTH = displaymetrics.widthPixels; 
    CAMERA_HEIGHT = displaymetrics.heightPixels; 
    camera = new ZoomCamera(0, 0, CAMERA_WIDTH, CAMERA_HEIGHT); 
    EngineOptions engineOptions = new EngineOptions(true, ScreenOrientation.LANDSCAPE_SENSOR, new RatioResolutionPolicy(CAMERA_WIDTH, CAMERA_HEIGHT), camera); 
    engineOptions.getAudioOptions().setNeedsSound(true); 

但沒有happend當我旋轉設備,我已經嘗試添加

android:configChanges="orientation" 
android:screenOrientation="sensor" 

這樣

<activity 
      android:name=".activities.AquaActivity" 
      android:configChanges="orientation" 
      android:screenOrientation="sensor" 
      android:label="@string/app_name" > 
      <intent-filter> 
       <action android:name="android.intent.action.MAIN" /> 

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

它似乎認識到從這開始的方向,但方向n在運行應用程序時不會改變

我需要做些特別的事情才能使它工作嗎?

+2

我也對這個感興趣。 – Siddharth

回答

2

您不需要XML設置,也不需要做任何特殊的事情。我正在使用LANDSCAPE_SENSOR,而沒有清單中的額外行。你的代碼也沒有明顯的錯誤。

如果您的應用程序正常工作(即場景顯示正確,所有內容都會移動等),並且其他應用程序/遊戲會正確旋轉屏幕,那麼我想到的最後一件事就是您可能會使用舊版Android SDK比GingerBread(API級別9)要高,這是LANDSCAPE_SENSOR的工作要求。

+0

好吧,我使用api級別10,謝謝你的信息,我沒有忘記任何東西..我想我要檢查我的代碼,也許我已經通過覆蓋任何功能禁用了功能 – wutzebaer

+0

我建議創建一個簡單的原型,只是呈現一個精靈並在那裏測試傳感器。此外,我認爲它是建議建立針對最新的SDK: '<使用-SDK 安卓的minSdkVersion = 「10」 機器人:targetSdkVersion = 「17」/>' 我不知道是否設置的minSdkVersion影響也使用傳感器的能力。 – sm4