2012-06-06 3 views
2

버튼/텍스트 뷰/등을 회전하고 싶습니다. 화면 상에 방향이 바뀌지 만 레이아웃을 변경하지 않고 유지하려고합니다. 어떻게 할 수 있습니까? LinearLayouts를 사용하고 있습니다. http://i46.tinypic.com/209hwnr.png화면 방향 변경시 뷰 회전 (레이아웃은 아님)

+1

은 레이아웃 랜드와 레이아웃 포트에 differnt 레이아웃을 만들 수 있습니다. –

+1

'Buttons/TextViews/등을 회전하고 싶습니다. 화면상의 방향은 바뀌지 만 레이아웃을 변경하지 않고 유지하고 싶습니다. "- 새로운 레이아웃을 사용하고 싶지만 새로운 레이아웃을 사용하고 싶지 않다는 것을 알지 못합니까? – mah

+0

자세히 설명해 주시겠습니까? – breceivemail

답변

5

res->layout->layout-land을 만들고 풍경 모드 XML 파일을 넣어

당신이 다음 layout-land 폴더를 만들 풍경을 필요로하는 경우 layout 폴더에있는 귀하의 레이아웃 파일은 이제 세로 모드입니다.

0

당신은 레이아웃 매개 변수를 변경해야합니다 :

이 무슨 뜻인지입니다.

+0

어떤 매개 변수입니까? 반대 방향 (화면 방향 변경시)으로 레이아웃 방향을 변경하려고했지만 작동하지 않았습니다. – Ziem

+0

레이아웃의 레이아웃 매개 변수입니다. 그것은 가능하지만 자바에서 할 일이 너무 많습니다. 하지만 어쨌든, Samir Mangroliya의 답을 확인하십시오. 훨씬 더 나은 접근법입니다. – mihail

1

그것은이 두 가지 방법으로 수행 할 수 있습니다

1) 어느 쪽이든 당신은 layout-land 폴더에 새 XML 파일을 정의합니다.

2) manifest.xml

활동 클래스의 다음

내부 활동 태그 android:configChanges="orientation"를 사용

@Override 
public void onConfigurationChanged(Configuration newConfig) { 
    super.onConfigurationChanged(newConfig); 

    if (newConfig.orientation == Configuration.ORIENTATION_LANDSCAPE) { 
     ChangeToLandscape(); 
    } else { 
     ChangeToPortrait(); 
    } 
} 

LayoutParams lp; 
public void ChangeToLandscape() { 
    lp = new LayoutParams(new ViewGroup.MarginLayoutParams(
      LayoutParams.WRAP_CONTENT,LayoutParams.WRAP_CONTENT)); 
    textView1.setLayoutParams(lp); 
    lp.setMargins(0, 0, 0, 0); // Whatever you want 
    // Similar for other views 
} 

//Similarly, implement `ChangeToPortrait()` 

는 희망이 도움이!