2011-02-23 1 views
0

내 창 너비와 높이를 설정하고 가운데에 놓고 위쪽 표시 줄을 숨기려면 전체 화면으로 설정하고 싶습니다.android : 레이아웃 크기를 설정하고 가운데에 놓고 전체 화면으로 설정하면 작동하지 않습니까?

이 줄로 치수를 설정하고 전체 화면으로 설정할 수 있지만 가운데 맞춤은 적용되지 않습니다.

Window window = getWindow(); 
window.setGravity(Gravity.CENTER | Gravity.FILL_VERTICAL | Gravity.FILL_HORIZONTAL); 
window.setLayout(480, 320); 
window.requestFeature(Window.FEATURE_NO_TITLE); 
window.addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN); 

다음과 같이 치수를 설정하고 중심에 배치하지만 상단 표시 줄을 볼 수 있으므로 전체 화면에는 아무런 영향이 없습니다.

Window window = getWindow(); 
window.setGravity(Gravity.CENTER); 
window.setLayout(480, 320); 
window.requestFeature(Window.FEATURE_NO_TITLE); 
window.addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN); 

는 그리고 fanally 내가 창이 중심

<application android:icon="@drawable/icon" android:label="@string/app_name" 
      android:theme="@android:style/Theme.NoTitleBar.Fullscreen"> 

를 추가하는 경우, 크기가 설정되어 있으며 전체 화면입니다 ...하지만 처음으로 내가 응용 프로그램을 실행합니다. 앱이 닫히고 다시 시작된 후에는 더 이상 전체 화면이 아닙니다.

크기가 조정 된 가운데 창을 전체 화면으로 표시하려면 어떻게해야합니까?

@ 편집 : 기기의 뒤로 버튼으로 앱을 종료하면 항상 작동한다는 것을 알았습니다. 상단 버튼은 홈 버튼으로 앱을 종료 할 때만 표시됩니다.

+0

프로그래밍 방식으로 창을 프로그래밍 언어로 변경하는 부분은 무엇입니까? – f0ster

+0

주요 활동은 – Robin

+0

입니다. 나는 그것이 안드로이드 버그라고 말할 것이다. – Robin

답변

0

그래서 해결책은 없지만 작은 해킹이 있습니다. 다음은 홈 버튼을 눌렀을 때 앱을 파괴합니다. 그러면 앱이 다시 시작되고 상단 표시 줄이 다시 숨겨집니다. 이 해킹에 만족스럽지 않지만 지금은 작동합니다.

/* 
* (non-Javadoc) 
* 
* @see android.app.Activity#onStop() 
*/ 
@Override 
protected void onStop() 
{ 
    super.onStop(); 


    //hack to prevent stopping fullscreen mode if the home button was pressed 
    ActivityManager am = (ActivityManager) this 
        .getSystemService(ACTIVITY_SERVICE); 
    List<ActivityManager.RunningTaskInfo> taskInfo = am.getRunningTasks(1); 
    ComponentName componentInfo = taskInfo.get(0).topActivity; 

    if(componentInfo.getShortClassName().equalsIgnoreCase(".Launcher")) 
    { 
     onDestroy(); 
    } 
} 


@Override 
public void onDestroy() 
{ 
    super.onDestroy(); 
    System.runFinalizersOnExit(true); 
    System.exit(0); 
}