14
我想在我的首選項中創建複選框允許用戶切換方向更改的活動。如何在android中切換方向鎖?
在類似的問題中,人們只寫完整的方向鎖(通過覆蓋onConfigurationChanged方法或在AndroidManifest.xml中添加configChanges)或方向實施(通過setRequestedOrientation)。
有沒有辦法切換方向鎖?
編輯: 我已經創建了一個集擇優取向三種狀態中的一種方法:風景,人像和傳感器。該方法與檢索方向getResources().getConfiguration().orientation)
並將檢索到的方向保存到偏好中一起使用。然後,在需要鎖定方向的活動中,我會根據偏好設定首選方向來啓動此方法。
private static void setActivityOrientation(Activity activity, int preferenceOrientation) {
if (preferenceOrientation == Configuration.ORIENTATION_LANDSCAPE) {
if(activity.getRequestedOrientation() != ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE){
// You need to check if your desired orientation isn't already set because setting orientation restarts your Activity which takes long
activity.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
}
} else if (preferenceOrientation == Configuration.ORIENTATION_PORTRAIT) {
if(activity.getRequestedOrientation() != ActivityInfo.SCREEN_ORIENTATION_PORTRAIT){
activity.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
}
} else {
if(activity.getRequestedOrientation() != ActivityInfo.SCREEN_ORIENTATION_SENSOR){
activity.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_SENSOR);
}
}
}
我想實現的是有點複雜。我想要鎖定方向。示例:如果用戶想在應用程序中鎖定方向,我讀取getResources()。getConfiguration()。orientation,然後觸發setRequestedOrientation以讀取當前方向。當他想禁用鎖定時,我只需將SetRequestedOrientation設置爲ActivityInfo.SCREEN_ORIENTATION_SENSOR。你的回答幫助我意識到這一點,所以我接受它。 – pixel 2010-05-15 16:53:58
@pixel你發現了逆向嗎?我在這裏有同樣的問題:http://stackoverflow.com/questions/6599770/screen-orientationlock – 2011-07-07 00:16:08