2014-01-20 36 views
4

如何在Android中更改屏幕方向時佈局的位置?如何在Android中更改屏幕方向時佈局的位置?

我在Relativelayout中有一個按鈕。

當手機是LANDSCAPE時,Relativelayout位於底部。

當電話是PORTRAIT時,它會轉到屏幕的右側。

它像下面的圖片。

我得到了屏幕的方向,但是如何設置Relativelayout從下往上改變它的位置?

enter image description here

---------------------------------- EDIT ------ ----------------------

代碼xmllayout-land

top_buttonlayout1有兩個button,另外兩個buttonbottom_buttonlayout1

top_buttonlayout1是圖中的Relative-2,而bottom_buttonlayout1是最下面的relativelayout

而我想讓它變成直線,怎麼辦?

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:baselineAligned="false" 
    android:orientation="vertical" > 


    <LinearLayout 
     android:id="@+id/top_buttonlayout1" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:layout_alignParentTop="true" 
     android:orientation="vertical" > 

     <LinearLayout 
      android:id="@+id/top_buttonlayout" 
      android:layout_width="fill_parent" 
      android:layout_height="wrap_content" 
      android:orientation="horizontal" 
      android:background="#00000000" > 

      <ImageButton 
       android:id="@+id/SettingButton" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:scaleType="fitXY" 
       android:layout_marginTop="5dp" 
       android:background="#00000000" 
       android:src="@drawable/parmeter_setting" /> 

      <ImageButton 
       android:id="@+id/FileSavebutton" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:scaleType="fitXY" 
       android:layout_marginTop="5dp" 
       android:layout_marginRight="5dp" 
       android:background="#00000000"   
       android:src="@drawable/save_in_camera" /> 

     </LinearLayout> 

    </LinearLayout> 

    <LinearLayout 
     android:id="@+id/bottom_buttonlayout1" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:layout_alignParentBottom="true" 
     android:orientation="vertical" 
     android:background="#454749" 
     > 

     <RelativeLayout 
      android:id="@+id/bottom_buttonlayout" 
      android:layout_width="fill_parent" 
      android:layout_height="match_parent" 
      android:orientation="vertical"> 


      <ImageButton 
       android:id="@+id/FileButton" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:layout_marginLeft="20dp" 
       android:scaleType="fitXY" 
       android:layout_centerVertical="true" 
       android:background="#454749" 
       android:src="@drawable/file_viewer"/> 

      <ImageButton 
       android:id="@+id/photo_record_mode" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:layout_marginRight="20dp" 
       android:layout_alignParentRight="true" 
       android:layout_centerVertical="true"    
       android:scaleType="fitXY" 
       android:background="#454749" 
       android:src="@drawable/recordmode"/> 

     </RelativeLayout> 
    </LinearLayout> 

</RelativeLayout> 

回答

5

你必須創建一個XML文件兩個版本,並把在 佈局端口和佈局 - res文件夾內的土地文件夾。

如:

res/layout-land [Landscape Mode] 
main.xml 
res/layout-port [Portrait Mode ] 
main.xml 

您可以進一步指在同一處 http://developer.android.com/training/basics/supporting-devices/screens.html

來源:here

+0

如何將佈局土地的相對佈局轉爲直線? – Martin

+0

正如我在answer.make中所說的兩個佈局文件,分別用於橫向和縱向。並且不能使相對佈局變直。您可以將視圖相對於彼此放置。對於水平或垂直佈局,請使用線性佈局。 –

+0

我在res/layout-land中創建了相同的佈局。但相關佈局也在底部 – Martin

2

爲lanscape創建不同的佈局,並把它放在佈局土地文件夾下的同名

+0

我已經張貼在latout土地MXL的代碼,請教我如何把佈局直,謝謝 – Martin