當前位置:首頁 » 安卓系統 » android橫屏旋轉

android橫屏旋轉

發布時間: 2023-01-02 04:25:05

❶ android開發 使用夜神模擬器 屏幕旋轉問題

沒想到在中演示時候遇到了崩潰,檢查發現是Asdk關閉之後在Bsdk的onActivityResult 方法,B頁面成員變數丟失。
最終發現有夜神模擬器有橫豎屏切換,加上沒有保存現場,由於頁面都是豎屏,於是選擇了最簡單的在AndroidManifest 配置了

強制豎屏,但是還是在返回過程中 模擬器切換橫屏頁面一閃而過,debug驗證確認。這種情況再正常情況下不會出現,考慮是不是夜神模擬器做了橫屏的修改。
解決辦法
1.頁面做了保存現場,和現場恢復

2.夜神模擬器在後台直接配置成手機豎屏模式

如果還有其他解決方法,可以討論一下

❷ droidcam怎麼旋轉屏幕

我們對android的屏幕旋轉方法進行如下總結:
1. AndroidManifest.xml設置
如果單單想設置橫屏或者豎屏,那麼只需要添加橫豎屏代碼:
android:screenOrientation="landscape"橫屏設置;
android:screenOrientation="portrait"豎屏設置;
這種方法的優點:即使屏幕旋轉,Activity也不會重新onCreate。
缺點:屏幕只有一個方向。
2. 代碼動態設置
如果你需要動態改變橫豎屏設置,那麼,只需要在代碼中調用setRequestedOrientation()函數:
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
//橫屏設置
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
//豎屏設置
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_UNSPECIFIED);
//默認設置
這種方法優點:可以隨意動態設置,滿足我們人為改變橫豎屏的要求,同時滿足橫豎屏UI不同的設計需求;
缺點:如果改變設置,那麼,Activity會被銷毀,重新構建,即重新onCreate;
3. 重寫onConfigurationChanged
如果你不希望旋轉屏幕的時候Activity被不斷的onCreate(這種情況往往會造成屏幕切換時的卡頓),那麼,可以使用此方法:
首先,在AndroidMainfest.xml中添加configChanges:
<activity android:name=".Test"
android:configChanges="orientation|keyboard">
</activity>
注意,keyboardHidden表示鍵盤輔助功能隱藏,如果你的開發API等級等於或高於13,還需要設置screenSize,因為screenSize會在屏幕旋轉時改變;
android:configChanges="keyboardHidden|orientation|screenSize"
然後,在Activity中重寫onConfigurationChanged方法,這個方法將會在屏幕旋轉變化時,進行監聽處理:
public void onConfigurationChanged(Configuration newConfig) {
// TODO Auto-generated method stubsuper.onConfigurationChanged(newConfig);
if (newConfig.orientation==Configuration.ORIENTATION_LANDSCAPE){
// Nothing need to be done here
} else {
// Nothing need to be done here
}
}
這個方法的優點:我們可以隨時監聽屏幕旋轉變化,並對應做出相應的操作;
缺點:它只能一次旋轉90度,如果一下子旋轉180度,onConfigurationChanged函數不會被調用。
4. 結合OrientationEventListener,自定義旋轉監聽設置
如果你想更加完美,更加完全的掌控監聽屏幕旋轉變化,比如,轉屏時不想重新onCreate,尤其是在Camera界面,不想出現旋轉preview時屏幕的卡頓、黑屏等問題,那麼,可以嘗試:
 
首先,創建OrientationEventListener對象:
private OrientationEventListener mOrientationListener;
// screen orientation listener
private boolean mScreenProtrait = true;
private boolean mCurrentOrient = false;
然後,自定義屏幕變化回調介面
abstract protected void OrientationChanged(int orientation);
//screen orientation change event
最後,自定義監聽類
private final void () {
mOrientationListener = new OrientationEventListener(this) {
@Override
public void onOrientationChanged(int rotation) {
if (((rotation >= 0) && (rotation <= 45)) || (rotation >= 315)||((rotation>=135)&&(rotation<=225))) {//portrait
mCurrentOrient = true;
if(mCurrentOrient!=mScreenProtrait)
{
mScreenProtrait = mCurrentOrient;
OrientationChanged(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
Log.d(TAG, "Screen orientation changed from Landscape to Portrait!");
}
}
else if (((rotation > 45) && (rotation < 135))||((rotation>225)&&(rotation<315))) {//landscape
mCurrentOrient = false;
if(mCurrentOrient!=mScreenProtrait)
{
mScreenProtrait = mCurrentOrient;
OrientationChanged(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
Log.d(TAG, "Screen orientation changed from Portrait to Landscape!");
}
}
}
};
mOrientationListener.enable();
}
在onCreate()中調用:
();
這個方法的優點:你可以任意隨時准確的監聽屏幕旋轉變化的狀態,可以隨時動態改變橫豎屏狀態;
註:對於Camera來說,你可以設置初始化為橫屏或者豎屏,然後對外提供旋轉監聽,這樣,既可以獲得屏幕旋轉狀態,讓你做出相應的操作,又不會出現重新onCreate當前Activity造成的卡頓與短暫的黑屏切換。

❸ Android只支持橫屏旋轉,監聽自動旋轉開關

設置橫屏其實很簡單,就是設置android:screenOrientation就可以。所以我們先來了解一下android:screenOrientation的屬性都有哪些?
unspecified,默認值,由系統決定,不同手機可能不一致
landscape,強制橫屏顯示
portrait,強制豎屏顯
behind,與前一個activity方向相同
sensor,根據物理感測器方向轉動,用戶90度、180度、270度旋轉手機方向,activity都更著變化
sensorLandscape,橫屏旋轉,一般橫屏游戲會這樣設置
sensorPortrait,豎屏旋轉
nosensor,旋轉設備時候,界面不會跟著旋轉。初始化界面方向由系統控制
user,用戶當前設置的方向
而滿足我們需求的屬性,分別為

1 landscape :強制橫屏,不管自動旋轉開關是否開啟,都只能是正方向橫屏,不會180度旋轉
2 sensorLandscape : 橫屏旋轉,不管自動旋轉開關是否開啟,都會180度旋轉
這兩個屬性明顯不滿足我們的需求,這時候我們只能去監聽自動旋轉開關的狀態,然後設置對應的screenOrientation,這樣才能滿足需求。

但是這只是一次獲取,所以我們需求實時監聽開關狀態。

我們通過ContentObserver來監聽自動開關狀態的改變

了解了這些之後,我們就能完成需求了

1 初始化監聽

2 注冊監聽

3 退出時取消監聽

4 相關的類與方法

❹ android 屏幕旋轉生命周期和setRequestedOrientation強制旋轉

屏幕會根據當前感測器進行自動旋轉,旋轉之後,activity屏幕的 生命周期不會發生變化 ,在activity中只會回調onConfigurationChanged方法

可見每次旋轉onDestory()方法都會被調用,如果要保存一些activity被銷毀前的數據的可以在onSaveInstanceState()方法中通過Bundle去保存

當我們調用了:
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE)
或者
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
之後屏幕不會再自動旋轉回來的情況

關於這點:我在b站App端也發現相關問題,點進b站的播放視頻界面,我們手機開啟屏幕自動旋轉,當我們橫豎屏旋轉的時候是可以正常橫豎屏切換的,但是我們點擊視頻右下角的放大(就是橫屏)之後,自動旋轉就失效了,要豎屏的話需要再點擊一次

關於這個問題,就是我們說的setRequestedOrientation之後重力感測失效的問題,處理的方法也很簡單
在AndroidManifest.xml中設置了android:configChanges="orientation|keyboardHidden|screenSize的基礎上,在onConfigurationChanged中調用 setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_SENSOR) 方法,使其恢復重力感測即可

安卓手機怎樣換為橫屏

方法一:在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);
}

三:

1.直接新建兩個布局文件,剩下的就什麼也不用管了:右鍵單擊『res』文件夾 -> 'new' -> 'Android resource directory'; 將 Directory name 填寫 layout-land,Resource type 選擇layout,這是建立了一個橫屏的布局文

❻ Android 橫屏旋轉180°監聽方式

橫屏180°旋轉系統不會回調到到 onConfigurationChanged() ,只能使用其他的方案,目前有2個方案
1、使用 OrientationEventListener 監聽屏幕的旋轉,裡面本質使用的是 TYPE_ACCELEROMETER 感測器,具體如下:

開啟調用 mOrientationListener. enable() , 關閉調用 mOrientationListener. disable() ;這種方式對性能消耗比較大, 但是可以獲取到手機當前的角度

2、使用監聽 DisplayManager 方式,手機切換方向會導致UI 顯示的改變,所以會回調到這里

這種方式不會耗性能

❼ 安卓手機如何開啟橫屏模式

1.先找到並打開設置

拓展資料

Android 設置橫屏模式顯示,橫屏模式大部分情況能彌補豎屏的不足——字體小、鍵盤小、畫幅比例不合適,而且橫屏模式下能提供更華麗、更流暢的感官體驗,android 橫屏,android landscape mode ,android 強制橫屏,android 強制豎屏,android 橫屏布局,android 設置全屏模式。

❽ android怎麼設置橫豎屏切換

方法一:

1、首先在android手機打開「設置」這個選項的,點擊「顯示」這個功能;

熱點內容
scratch少兒編程課程 發布:2025-04-16 17:11:44 瀏覽:642
榮耀x10從哪裡設置密碼 發布:2025-04-16 17:11:43 瀏覽:369
java從入門到精通視頻 發布:2025-04-16 17:11:43 瀏覽:89
php微信介面教程 發布:2025-04-16 17:07:30 瀏覽:312
android實現陰影 發布:2025-04-16 16:50:08 瀏覽:795
粉筆直播課緩存 發布:2025-04-16 16:31:21 瀏覽:348
機頂盒都有什麼配置 發布:2025-04-16 16:24:37 瀏覽:213
編寫手游反編譯都需要學習什麼 發布:2025-04-16 16:19:36 瀏覽:819
proteus編譯文件位置 發布:2025-04-16 16:18:44 瀏覽:369
土壓縮的本質 發布:2025-04-16 16:13:21 瀏覽:596