android設置豎屏仍然跟隨屏幕旋轉怎么辦

如題所問,我最近遇到一個bug,就是設置了搖感,然后有用戶反饋說設置了手機下拉的系統設置-屏幕旋轉-關閉。然后屏幕還是會旋轉的問題。

首先,我們先從如何設置橫豎屏了解下好了

設置橫屏和豎屏的方法:

方法一:在AndroidManifest.xml中配置

如果不想讓軟件在橫豎屏之間切換,最簡單的辦法就是在項目的AndroidManifest.xml中找到你所指定的activity中加上android:screenOrientation屬性,他有以下幾個參數:

"unspecified":默認值 由系統來判斷顯示方向.判定的策略是和設備相關的,所以不同的設備會有不同的顯示方向.

"landscape":橫屏顯示(寬比高要長)

"portrait":豎屏顯示(高比寬要長)

"user":用戶當前首選的方向

"behind":和該Activity下面的那個Activity的方向一致(在Activity堆棧中的)

"sensor":有物理的感應器來決定。如果用戶旋轉設備這屏幕會橫豎屏切換。

"nosensor":忽略物理感應器,這樣就不會隨著用戶旋轉設備而更改了("unspecified"設置除外)。

方法二:在java代碼中設置

設置橫屏代碼:setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);//橫屏

設置豎屏代碼:setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);//豎屏?

因為橫屏有兩個方向的橫法,而這個設置橫屏的語句,如果不是默認的橫屏方向,會把已經橫屏的屏幕旋轉180°。

所以可以先判斷是否已經為橫屏了,如果不是再旋轉,不會讓用戶覺得轉的莫名其妙啦!代碼如下:

if(this.getResources().getConfiguration().orientation==Configuration.ORIENTATION_PORTRAIT){setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
}

是吧,設置的無非就這兩種方法。但是搜索的方法千篇一律都是差不多的。然后我設置的是"sensor"。然后也不懂問題出在了哪里,沒辦法只能繼續去找資料看看。或許有更多的可能性沒考慮到,結果在一篇文章中找到了。

原來就是方向傳感器決定的,它沒辦法隨系統設置的旋轉。優先級比較高吧。吐了呀!然后我就直接把清單文件的?android:screenOrientation 屬性刪了。用默認的屬性或者改成?android:screenOrientation="unspecified" 。問題就解決了。

當然了還有標題出現的這個問題,就是設置豎屏仍然跟隨屏幕旋轉,可能需要你細心的找找你設置的方法一或者方法二哪一步設置錯了。或者代碼設置錯了。畢竟慢工出細活,要細心才不容易出錯。

嗯嗯,還有就是遇到了個問題:如何判斷是否開啟自動旋轉。下面就來分享一下方法:系統是否允許自動旋轉屏幕的方法

    /*** 系統是否允許自動旋轉屏幕*/public static boolean isAutoRotateOn(Context context) {//獲取系統是否允許自動旋轉屏幕return (android.provider.Settings.System.getInt(context.getContentResolver(), Settings.System.ACCELEROMETER_ROTATION, 0) == 1);}

之前有查閱的如下:

Activity手動設置橫豎屏展示之后繼續保持橫豎屏自動切換 - 簡書

安卓 屏幕旋轉 - 自由資訊

android設置橫屏和豎屏的方法-騰訊云開發者社區-騰訊云

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/39895.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/39895.shtml
英文地址,請注明出處:http://en.pswp.cn/news/39895.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

uni-app引入sortable列表拖拽,兼容App和H5,拖拽排序。

效果: 拖拽排序 背景: 作為一名前端開發人員,在工作中難免會遇到拖拽功能,分享一個github上一個不錯的拖拽js庫,能滿足我們在項目開發中的需要,下面是我在uniapp中使用SortableJS的使用詳細流程; vue開發…

Centos7安裝docker后默認開啟docker0的網卡|卸載默認網卡

一: 停掉服務 systemctl stop docker [rootwww ~]# systemctl stop docker [rootwww ~]# systemctl status docker ● docker.service - Docker Application Container Engine Loaded: loaded (/usr/lib/systemd/system/docker.service; enabled; vendor prese…

神經網絡基礎-神經網絡補充概念-27-深層網絡中的前向傳播

概念 深層神經網絡中的前向傳播是指從輸入數據開始,逐層計算每個神經元的輸出值,直到得到最終的預測值。 一般步驟 1輸入數據傳遞: 將輸入數據傳遞給網絡的輸入層。輸入數據通常是一個特征矩陣,每一列代表一個樣本,…

【bug】Unity無法創建項目

bug UnityHub無法創建項目 UnityHub無法創建項目 出現的問題:在創建新項目時彈出來一個 無法創建項目 嘗試的方法: 刷新許可證 ?沒用退出賬號重新登陸 ?沒用重啟電腦 ?沒用 最后發現是什么問題呢? 2021.3.3這個版本我之前在資源管理器中…

SpringBoot概述及項目的創建使用

文章目錄 一. Spring Boot概述1. 什么是Spring Boot?2. Spring Boot的優點 二. Spring Boot項目的創建1. 使用IDEA創建1.1. 準備工作1.2. 創建運行Spring Boot項目1.3. 進行Web交互1.4. 目錄工程介紹1.5. 項目快速添加依賴1.6. 防止配置文件亂碼所需的配置1.7. Spri…

Docker實戰專欄簡介

🌷🍁 博主貓頭虎 帶您 Go to New World.?🍁 🦄 博客首頁——貓頭虎的博客🎐 🐳《面試題大全專欄》 文章圖文并茂🦕生動形象🦖簡單易學!歡迎大家來踩踩~🌺 &a…

【iMessage蘋果推?IM推送】群控腳本當Apple APNS推送服務器從您的應用程序接吸收注冊消息時,它將為您回到一串devicetoken

推薦內容IMESSGAE相關 作者??IMEAE推薦內容iMessage蘋果推軟件 *** 點擊即可查看作者要求內容信息作者??IMEAE推薦內容1.家庭推內容 *** 點擊即可查看作者要求內容信息作者??IMEAE推薦內容2.相冊推 *** 點擊即可查看作者要求內容信息作者??IMEAE推薦內容3.日歷推 *** …

Rust軟件外包開發語言的特點

Rust 是一種系統級編程語言,強調性能、安全性和并發性的編程語言,適用于廣泛的應用領域,特別是那些需要高度可靠性和高性能的場景。下面和大家分享 Rust 語言的一些主要特點以及適用的場合,希望對大家有所幫助。北京木奇移動技術有…

MongoDB:簡單的增刪改查操作

一.概述 本篇文章介紹在Navicat中對MongoDB數據庫進行增刪改查操作,在后面會介紹在Spring Boot中使用MongoTemplate對MongoDB數據庫進行相關操作.如有必要可以先看看前面幾篇文章. MongoDB:MySQL,Redis,ES,MongoDB的應用場景 MongoDB:數據庫初步應用 二.在Navicat進行增刪改…

linux系統服務學習(七)NFS服務、DHCP服務

文章目錄 一、NFS服務概述1、任務背景2、環境準備3、NFS概述4、NFS組成5、與NFS相關的軟件包6、安裝NFS軟件7、NFS的配置文件 二、NFS實驗1、搭建NFS服務器2、編寫NFS主配置文件3、啟動相關的NFS服務4、搭建Web服務器5、在Web服務器中掛載NFS6、上傳aws.mp4視頻到NFS服務器的/s…

人工智能學習框架—飛槳Paddle人工智能

1.人工智能框架 機器學習的三要素:模型、學習策略、優化算法。 當我們用機器學習來解決一些模式識別任務時,一般的流程包含以下幾個步驟: 1.1.淺層學習和深度學習 淺層學習(Shallow Learning):不涉及特征學習,其特征…

Vue3 setup中使用$refs

在 Vue 3 中的 Composition API 中,$refs 并不直接可用于 setup 函數。這是因為 $refs 是 Vue 2 的實例屬性,而在 Vue 3 中,setup 函數是與模板實例分離的,不再使用實例屬性。 實際工作中確實有需求,在setup 函數使用…

迪瑞克斯拉算法

迪銳克斯拉算法 簡單來說就是在有向圖中,給定一個圖中具體的出發點,從這個點出發能夠到達的所有的點,每個點的最短距離是多少。到不了的點,距離則是正無窮。有向,無負權重,可以有環。 所以說,迪…

流媒體服務-傳輸延時(SEI插幀)

什么是延時 很多小伙伴認為,當推流端和拉流端顯示的時間不一致,即為延時。 其實這種看法是比較片面的,不同的播放器,對同一路流進行測試,可能會得到不同的結果。 一般來說,延時為以下幾個部分的累加組成 …

【Android】解決Lint found fatal errors while assembling a release target

報錯信息: Android在debug模式下打包沒有問題,但是在打包release版本時出現一下問題: 結果圖 原因 我項目的原因是因為把正式、測試地址放到代碼里了,忘記選中正式環境的地址,導致打正式包有問題;大家如果…

Shell編程學習之變量的使用

查看當前系統使用的命令解釋器: linuxubuntu:~$ echo $SHELL /bin/bashshell命令:在終端上使用的命令,例如 vi a.cgcc a.c./a.outshell腳本:其是一個.sh文件,里面都是命令的集合,以及一些復雜的邏輯&#…

RuntimeException詳解

當我們談論Java編程中的異常處理時,RuntimeException是一個關鍵的概念,它在代碼開發和維護中扮演著重要的角色。本文將深入探討RuntimeException,了解它的特點、使用場景以及如何在代碼中處理它。 什么是RuntimeException? 在Ja…

復合 類型

字符串和切片 切片 切片的作用是允許你引用集合中部分連續的元素序列,而不是引用整個集合。 例如: let s String::from("hello world");let hello &s[0..5]; // 切片 [0,5) 等效于&s[..5] let world &s[6..11]; // 切片…

線性動態規劃入門之挖地雷

P2196 [NOIP1996 提高組] 挖地雷 - 洛谷 | 計算機科學教育新生態 (luogu.com.cn) 這個題有點坑,就是說你只能往下挖,可以理解成單項路徑。比如1與3之間是1代表1可以到3而3不可以到1。所以我們來思考dp把。怎么寫?我們這么想假設1與2&#xf…

gitee上傳一個本地項目到一個空倉庫

gitee上傳一個本地項目到一個空倉庫 引入 比如,你現在本地下載了一個半成品的框架,現在想要把這個本地項目放到gitee的倉庫上,這時就需要我們來做到把這個本地項目上傳到gitee上了。 具體步驟 1. 登錄碼云 地址:https://gite…