2012-12-29 81 views
0

我有一個以橫向模式運行的應用程序。它應該始終處於橫向模式,但是如果我在我的Kindle Fire HD上以垂直方式啓動它,則應用程序將簡要嘗試以縱向模式顯示。這導致很多悲傷。這個簡短的肖像行爲不會發生在我的手機或Kindle Fire HD模擬器上。Kindle Fire HD在我需要橫向顯示時顯示我的應用程序

有沒有辦法來防止這種情況發生?

我的清單文件有:

<activity 
     android:name=".SplashScreen" 
     android:screenOrientation="landscape" 
     android:noHistory="true" 
     android:configChanges="keyboardHidden|orientation|screenSize" 
    > 
     <intent-filter> 
      <action android:name="android.intent.action.MAIN" /> 
      <category android:name="android.intent.category.LAUNCHER" /> 
     </intent-filter> 
    </activity> 

    <activity 
     android:label="@string/app_name" 
     android:screenOrientation="landscape" 
     android:configChanges="keyboardHidden|orientation|screenSize" 
     android:name=".MyActivity"> 
    </activity> 

是否有更多我需要做什麼?

回答

0

回答我的問題,我可以找我唯一的解決方案是使用一種變通方法:

public void surfaceChanged(SurfaceHolder holder, int format, int width, int height) { 
    synchronized (holder) { 
     Log.view("Surface changed event: width = " + width + ", height = " + height); 
     if (width < height) { 
      Log.view("HEY THIS IS NOT LANDSCAPE!!!!"); 
      return; 
     } 
     // do stuff 
    } 
} 

從我的經驗,每次點燃火了我的「景觀」的應用程序,寬度小於高度(因此,根據定義,並不真正給我一個景觀視圖),我只是忽略了表面,等待,它很快給了我一個真實的景觀(翻轉高度和寬度,使其真實的景觀視圖)。

0

我有方向的相同缺陷問題與三星平板和

設置>顯示>水平校準和解決它;

將設備放在平坦的表面上後點擊Calibrate。試試看,它可能會解決這個問題。

重要:此設置已添加的Android版本2.3(姜麪包)

+0

這不是一個校準問題。我的視圖的surfaceChanged函數被調用的寬度小於高度。如果我的應用程序強制橫向screenOrientation,這絕不應該發生。 – user1526292

+0

你試過了嗎? – Sathirar

+0

我找不到任何校準Kindle Fire HD的方式。此外,我不希望收到崩潰報告,因爲人們有未經過校準的設備。 – user1526292

0

This說,關於這個問題之後到Android。並考慮改變僅針對該設備反轉的定向模式。謝謝。

相關問題