3 動態方向鎖定

2021-08-28 11:37:21 字數 1488 閱讀 9007

在某些特定的條件下,不能讓螢幕旋轉,但這個條件是臨時的或是根據使用者的意願決定的。

(api level 1)

借助android的請求方向機制(requested orientation mechanism),應用程式可以調整顯示activity的螢幕方向,將其固定為某個方向或是交由裝置決定。這是通過呼叫activity.setreactivity的螢幕方向。這通常是根據裝置的物理方向來確定的。當前請求的方向可以隨時通過呼叫activity.getrequestedorientation()方法獲得。

舉個示例,讓我們建立乙個togglebutton例項來控制是否鎖定當前螢幕方向,這樣就能讓使用者隨時控制activity的方向。以下**描繪了在其中定義togglebutton例項的簡單布局。

res/layout/activity_lock.xml

<?xml version="1.0" encoding="utf-8"?>

在activity**中,我們給這個按鈕的狀態建立乙個***,根據按鈕的值決定鎖定或解鎖螢幕的方向(參見以下**)。

動態鎖定/解鎖螢幕方向的activity

public class lockactivity extends activity  else 

//將***關聯到按鈕

toggle.setoncheckedchangelistener(new orientationlocklistener());

}private class orientationlocklistener implements compoundbutton.oncheckedchangelistener

} else }};

}

***中的這段**是本攻略的關鍵。如果使用者按下這個按鈕,將其置為on狀態,應用程式就通過儲存resources.getconfiguration()的orientation引數讀取當前的螢幕方向。configuration物件 用來表示螢幕方向的常數與所請求的方向使用的常數不同,所以我們根據當前的螢幕方向進行切換,然後再用合適的常熟呼叫setrequestedorientation()方法。

注意:

如果所請求的方向跟當前狀態不一樣,且activity在前台,activity就會立即切換方向以滿足請求。

如果使用者按下了這個按鈕,將其設為off狀態,我們就不再鎖定方向,因此用screen_orientation_unspecified常數再呼叫一次setrequestedorientation(),將控制權交還給裝置。如果裝置當前的物理方向跟移除鎖定時的activity方向不一致,也會導致螢幕切換方向。

注意:

設定請求的方向不會保持預設的activity生命週期。如果裝置配置發生變化(例如物理鍵盤彈出,或是裝置方向改變),activity依然會被銷毀並重新建立,因此所有保持activity狀態的規則都適用。

2 鎖定Activity方向

應用程式中的某個activity不能旋轉,或是旋轉需要應用程式 更直接的干預。api level 1 在androidmanifest.xml檔案中可以用靜態宣告將每個activity的方向鎖定為橫向或縱向。這個宣告只能用於標籤,所有不能一次性解決整個應用程式。只需要在元素中加上android sc...

python 3次登入鎖定

2017 06 17 需求說明 1.輸入使用者名稱和密碼 2.對密碼和使用者名稱進行驗證,驗證通過則顯示歡迎資訊 3.密碼輸錯三次後鎖定使用者 思路 1.account.txt是存放使用者id和密碼的檔案 2.lock.txt是存放被鎖定使用者id的檔案,預設為空 3.判斷使用者是否在黑名單lock...

06 密碼錯誤3次鎖定

usr bin env python coding utf8 author felix zheng count 0 計數器 username 111 登入使用者名稱 userpassword 111 登入密碼 讀取黑名單使用者 f open back user r file list f.readl...