2012-03-09 3 views
6

SD 카드 존재 여부에 따라 열리는 두 가지 활동이 있습니다. 한 활동에는 세 개의 ButtonsTextView이 있고 다른 한 활동에는 ImageView, 단추 및 확대/축소 컨트롤이 있습니다. 방향을 변경하면 버튼이 수평 방향으로 돌아서 스크램블됩니다. 이 문제를 어떻게 해결할 수 있을까요?오리엔테이션을 바꿀 때 Xml 레이아웃이 바뀝니다.

내 'SD'카드 레이아웃

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:background="#1E1E1E" 
    android:orientation="vertical" > 

    <Button 
     android:id="@+id/button_print" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignParentBottom="true" 
     android:layout_centerHorizontal="true" 
     android:layout_marginBottom="44dp" 
     android:background="@drawable/my_button" 
     android:text="@string/print" /> 

    <TextView 
     android:id="@+id/text_SDmissing" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignParentTop="true" 
     android:layout_centerHorizontal="true" 
     android:layout_marginTop="80dp" 
     android:text="@string/SDmissing" 
     android:textSize="20dp" /> 

    <Button 
     android:id="@+id/button_camera" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_above="@+id/button_print" 
     android:layout_centerHorizontal="true" 
     android:layout_marginBottom="58dp" 
     android:background="@drawable/my_button" 
     android:text="@string/camera" /> 

    <Button 
     android:id="@+id/button_insert" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_below="@+id/text_SDmissing" 
     android:layout_centerHorizontal="true" 
     android:layout_marginTop="40dp" 
     android:background="@drawable/my_button" 
     android:text="@string/insert" /> 

</RelativeLayout> 
+0

우리에게 귀하의 레이아웃 XML 파일 (들)을 제시해주십시오. –

+1

pls이 xml 파일을 게시합니다. 방향에 따라 레이아웃을 변경해야하는 경우 레이아웃 포트와 레이아웃 랜드에 대해 두 개의 레이아웃을 설정해야합니다. – deepa

+1

세로/가로 레이아웃을 다르게 해 봤니? – Luksprog

답변

8

당신은 "레이아웃 땅"이라는 프로젝트에 폴더를 만들 수 있습니다 (이하 "고해상도"디렉토리에). 거기에서 일반적인 "레이아웃"폴더의 모든 XML 스타일을 복사하여 가로 모드로 다시 스타일을 지정할 수 있습니다. Android는 이러한 레이아웃을 가로 모드 용으로 자동으로 사용합니다.

프로젝트는 다음과 같이 보일 것이다 :

enter image description here

13

당신은 가로 모드와 세로 모드에 대해 별도의 XML 파일을 생성하고 다른 디렉토리에 배치해야합니다. 장치가 자동으로 올바른 것을 선택합니다. 당신은 당신이 확인할 수 있습니다 더 참고로 다음 디렉토리 구조

res/layout/my_layout.xml 
res/layout-land/layout.xml 

를 사용할 수 있습니다 http://developer.android.com/guide/practices/screens_support.html

+0

괜찮아요 :) 내 또 다른 질문은 다른 화면 크기를 지원하는 레이아웃을 사용하는 방법 ..... 내가하고있는 일은 내가 다시 정렬하고 앱을 실행하고 내 장치를 확인하지만 그게 아니라면 다른 응용 프로그램에서 동일하게 실행하십시오 ..... – jxgn

+0

두 파일 이름이 동일해야합니다. –

관련 문제