태터데스크 관리자

도움말
닫기
적용하기   첫페이지 만들기

태터데스크 메시지

저장하였습니다.
이놈의 폰을 세로로 쓰다가 가로로 기울이면 화면 전환이 일어 난다.
뭐 가로,세로 같은 화면을 쓰겠다면야 상관 없겠지만 다른 화면을 보여주고 싶으면
화면 방향 전환이 됐다는 이벤트를 잡아 와서 각각 레이아웃을 바꿔치기 하면 된다.
그러면 onConfigurationChanged 를 구현해 주면 된다.

// 화면 전환시 레이아웃 변경
 public void onConfigurationChanged(Configuration newConfig) {
  
  super.onConfigurationChanged(newConfig);
  
  if (newConfig.orientation == Configuration.ORIENTATION_PORTRAIT) { // 세로 전환시 발생
       setContentView(R.layout.main_vertical);
  } else if (newConfig.orientation == Configuration.ORIENTATION_LANDSCAPE) { // 가로 전환시 발생
       setContentView(R.layout.main_horizontal);
  }  
 
  afterLayoutChanged();
  
 }

레이아웃을 가로,세로 두개로 구현해서 바뀌는거에 따라서 맞춰주면 된다.

근데 그러면 간월적으로 폰을 가로로 들고 해당 앱을 실행 시키는 이상한 애들이 있을 수도 있다.
onConfigurationChanged 얘가 있어서 알아서 해 줄 것 같지만 안 해준다. 썩을...
앱이 실행된 상태에서 일어나는 전환 이벤트에 대해서만 처리를 해 주나 보다.

그러면 시작할때 잡아와야 하니까 onCreate 에다가 요렇게 넣어주면 된다.

public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        if ( this.getResources().getConfiguration().orientation == Configuration.ORIENTATION_PORTRAIT) { // 세로
            setContentView(R.layout.main_vertical);
        } else { // 가로
             setContentView(R.layout.main_horizontal);
        }
}


가로로 실행하든지 세로로 실행하든지 맘대로 하라 그래라.
이 정도 알려 줬는데 그냥 가면 혼난다!! ㅋㅋ
  1. 사실.. 개인적으로 별로 였지만 지나고 나면 생각나고 한번 쯤 또 가보고 싶네요.

  2. anonymous 2013.07.04 10:50 신고

    thanks to you

  3. 고독한 늑대 2013.08.01 09:48 신고

    그대에게 영광! 영광 있으라~~ 캄사.

  4. s 2013.10.02 15:12 신고

    ↑폰을 가로로 들고 해당 앱을 실행 시키는 이상한 1人...

    앱 만들다가 어떻게 처리할까 했는데 덕분에 해결했어요~

    감사드려요~

+ Recent posts