2011-08-08 6 views
0

나는 세로 모드에서 실행중인 응용 프로그램을 데. 지금은 전체 화면의 의도, 가로 모드을 열고 가로 모드의 높이와 너비를 얻을 필요합니다. 다음은 얻기 차원 매개 변수는

는 코드입니다.

requestWindowFeature(Window.FEATURE_NO_TITLE); 
this.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);  
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE); 
Display disp = getWindowManager().getDefaultDisplay(); 
Log.i("Width: " + disp.getWidth() + ", Height: " + disp.getHeight()); 

모든 것이 화면이 전체 화면 모드에서 열려지고처럼 잘 작동하는, 가로 모드도 잘 작동한다. 그러나 세로 모드의 높이 및 너비 매개 변수 만 가져옵니다.

난 가로 모드에서 응용 프로그램은 다음 내가 바로 높이와 같은 코드 폭을 얻고 실행하는 경우.

해결 방법? setRequestedOrientation이 효과에 시간이 걸릴 수 있기 때문에

+0

의 높이 안드로이드를 얻기 위해 다음과 같은 방법을 사용합니다. 그리고 우리는 정확한 치수를 얻을 것입니다. – vbjain

답변

0

은 즉. 코드를 사용하여 onRestart()/onResume에서 디스플레이를 가져올 수 있습니다.

변경이 활동의 ​​바람직한 방향입니다. 활동이 현재 포 그라운드에 있거나 화면 방향에 영향을주는 경우 화면이 즉시 변경되어 활동이 다시 시작될 수 있습니다. 그렇지 않으면 다음에 활동이 표시 될 때 사용됩니다. screenOrientation = "풍경"이 특정 활동 :

0

는 폭과 매니페스트 사용 중 화면

WindowManager windowManager = (WindowManager) activity.getApplicationContext().getSystemService(Context.WINDOW_SERVICE); 
int height = windowManager.getDefaultDisplay().getHeight(); 
int width = windowManager.getDefaultDisplay().getWidth(); 
+0

나는 이것이 전체 전화 폭을 제공한다고 생각한다. 하지만 난 그냥 디스플레이 화면 너비 싶어요. 나는 Samsung Galaxy S GT-9003 전화를 가지고있다. 480 * 800의 치수를 가지고 있습니다. 어쨌든 디스플레이 화면 높이와 너비 만 표시됩니까? – vbjain