2011-11-07 58 views
0

我在不同的方向上顯示兩種不同的佈局。方向改變時烤麪包不顯示爲什麼..?

在這兩個我都敬酒消息,方向改變。

它顯示在肖像烤麪包,但不在風景爲什麼..?

public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 
     Display display = ((WindowManager) getSystemService(WINDOW_SERVICE)).getDefaultDisplay(); 
     System.out.println("Initial Oriatation is "+display.getOrientation()); 
     int oriatation = display.getOrientation(); 
     if(oriatation == 0){ 
      Toast.makeText(getApplicationContext(), "Changed", Toast.LENGTH_SHORT) 
      .show(); 
      createPort(); 
      resumePort(); 
     }else if(oriatation == 1){ 
      Toast.makeText(getApplicationContext(), "Changed", Toast.LENGTH_SHORT) 
      .show(); 
      createLand(); 
      resumeLand(); 
     } 
} 

在此先感謝...!

回答

1

您需要實現onConfigurationChanged方法,該方法將檢測方向是否已更改。

要確保您的活動調用了此選項,您需要在清單中指定android:configChanges =「orientation | screenSize」。

然後在你的onConfigurationChanged方法,你可以有這樣的:

if (newConfig.orientation == Configuration.ORIENTATION_LANDSCAPE) { 
     Toast.makeText(this, "landscape", Toast.LENGTH_SHORT).show(); 
} else if (newConfig.orientation == Configuration.ORIENTATION_PORTRAIT){ 
     Toast.makeText(this, "portrait", Toast.LENGTH_SHORT).show(); 
} 

進一步的信息,請參閱http://developer.android.com/guide/topics/resources/runtime-changes.html

+0

謝謝..... – Noby

0

根據docDisplay.getOrientation()已棄用,建議使用getRotation()代替。然而,在的getRotation()返回的值,我假設getOrientation()可能會返回類似的結果,所以請不僅檢查0和1,但也檢查2和3,看看會發生什麼。的

編輯代替else if(oriatation == 1)使用

else if(oriatation % 2 == 1) // or `else if(oriatation == 1 || oriatation == 3)` 
+0

以前我打印日誌貓的值,以查看其方向變化時的值..它只給0和1. – Noby

+0

getRotation()是從API級別8,但我正在API級別7, – Noby

+0

@ Noby這就是爲什麼我不建議使用'getRotation()'=)我已經嘗試過了,'getOrientation()'返回1逆時針旋轉90度,3旋轉90度。 – Vladimir

0

一個奇怪的事情與我發生的事情,當我在第一次android2.3.1(API-9)運行這個程序我得到的土司味精是「改變到肖像「(我改變了」改變「改爲」改變爲肖像「和」改變爲風景「。),當我改變屏幕的方向從肖像到風景我得到」改變風景「,但當我再次改變方向以肖像模擬器再次msg「改變景觀」。現在一直顯示「改變景觀」。我搜索了這個問題,發現當我們改變屏幕活動的方向將鬆開其初始狀態並更改爲下一個狀態,因此我們必須保持屏幕的初始狀態以再次查看Toast msg「更改爲縱向」。 有一類SharedPrefrences誰幫助我們保持狀態。所以試試它希望它會解決你的問題。

相關問題