Android 程式開發:(六)適應方向 —— 6.1 屏幕方向的改變

現代手機設備的一個非常重要的特性就是可以旋轉屏幕的方向。當然瞭,Android也不例外。Android支持兩種屏幕方向:portrait(豎屏)和landscape(橫屏)。默認情況下,當改變手持設備的屏幕方向時,當前的anctivity會自動地重繪它的內容。這是因為當屏幕方向發生變化的時候,onCreate()方法被觸發瞭。
 
說明:當改變設備的屏幕方向,事實上,你的當前的activity會被銷毀,然後重新創建。
 
然後,當views被重繪的時候,它們可能會按照之前的屏幕方向被繪制(這取決於被選擇的佈局layout)。
 
[html] view plaincopy<TableLayout  
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_height="fill_parent"  
    android:layout_width="fill_parent" 
    > 
    <TableRow> 
        <TextView 
            android:text="User Name:" 
            android:width ="120dp" 
            /> 
        <EditText 
            android:id="@+id/txtUserName" 
            android:width="200dp" /> 
    </TableRow> 
    <TableRow> 
        <TextView  
            android:text="Password:" 
            /> 
        <EditText  
            android:id="@+id/txtPassword"  
            android:password="true"  
            /> 
    </TableRow> 
    <TableRow>         
        <TextView />         
        <CheckBox android:id="@+id/chkRememberPassword" 
            android:layout_width="fill_parent"  
            android:layout_height="wrap_content" 
            android:text="Remember Password" 
            />    
    </TableRow> 
    <TableRow> 
        <Button  
            android:id="@+id/buttonSignIn"  
            android:text="Log In" /> 
    </TableRow> 
</TableLayout> 
 
豎屏模式:
 
 

橫屏模式:

請註意,在lanscape橫屏模式下,屏幕的右側多出來一些能被使用的空白控件。此外,當屏幕方向被設置成landscape的時候,任何在屏幕下方的view都會被隱藏。
 
通常,在屏幕方向改變時,可以使用兩種方法去處理那些變化。
 
增加錨點 —— 最簡單的辦法就是把你的視圖views“錨定”在屏幕的四周。當屏幕方法發生改變的時候,這個視圖views就能被很自然地“錨定”在屏幕的四周。
重新調整尺寸和位置 —— “錨定”和“集中”是簡單處理屏幕方向變化的方法,更高級的方法是根據當前的屏幕方向,重新調整每個View的尺寸和位置。
 
 
摘自 manoel的專欄

發佈留言