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

android轉屏

發布時間: 2022-05-25 15:51:39

A. 安卓手機屏幕翻轉在哪兒設置

可以打開手機,在手機的上方向邊用一根手指輕輕點住往下一劃,就會出現一些簡易設置,


有方向鎖定,點一下變成藍色就可以了。如果沒有這功能,可以打開手機,在手機里找設置一項,打開設置找屏幕管理類的項目,也是找到方向鎖定打開即可。

B. 如何讓安卓手機判定屏幕旋轉90度 how to make android mobile phone to determine

在介紹之前,我們需要先了解默認情況下android屏幕旋轉的機制:
默認情況下,當用戶手機的重力感應器打開後,旋轉屏幕方向,會導致當前activity發生onDestroy-> onCreate,這樣會重新構造當前activity和界面布局,如果在Camera界面,則表現為卡頓或者黑屏一段時間。如果是在橫豎屏UI設計方面,那麼想很好地支持屏幕旋轉,則建議在res中建立layout-land和layout-port兩個文件夾,把橫屏和豎屏的布局文件分別放入對應的layout文件夾中。
了解了這些以後,我們對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造成的卡頓與短暫的黑屏切換。

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

1.先找到並打開設置

拓展資料

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

D. 如何在啟動時讓android系統屏幕旋轉90度

設備平放,屏幕朝正上方。以下四個常量分別代表:
private static final int ROTATION_0 = 0;//初始情況。這個時候設備是橫屏還是豎屏與硬體設備安裝時默認的顯示方向有關。
private static final int ROTATION_90 = 1;//設置屏幕方向自動旋轉後,右側翻起側立時,屏幕會旋轉到這個方向。
private static final int ROTATION_270 = 2;//設置屏幕方向自動旋轉後,左側翻起度側立時,屏幕會旋轉到這個方向。
private static final int ROTATION_180 = 3;//設置屏幕方向自動旋轉後,屏幕底部側立時,屏幕會旋轉到這個方向。

再看兩個數組:
view plain
private static final int[][][] THRESHOLDS_WITH_180 = new int[][][] {
{{60, 165}, {165, 195}, {195, 300}},
{{0, 30}, {165, 195}, {195, 315}, {315, 360}},
{{0, 45}, {45, 165}, {165, 195}, {330, 360}},
{{0, 45}, {45, 135}, {225, 315}, {315, 360}},
};
private static final int[][] ROTATE_TO_WITH_180 = new int[][] {
{ROTATION_90, ROTATION_180, ROTATION_270},
{ROTATION_0, ROTATION_180, ROTATION_90, ROTATION_0},
{ROTATION_0, ROTATION_270, ROTATION_180, ROTATION_0},
{ROTATION_0, ROTATION_90, ROTATION_270, ROTATION_0},
};

當前屏幕旋轉方向為ROTATION_0時,取int[][] threshold=THRESHOLDS_WITH_180[0];
當前屏幕旋轉方向為ROTATION_90時,取int[][] threshold=THRESHOLDS_WITH_180[1];
當前屏幕旋轉方向為ROTATION_270時,取int[][] threshold=THRESHOLDS_WITH_180[2];
當前屏幕旋轉方向為ROTATION_180時,取int[][] threshold=THRESHOLDS_WITH_180[3];

其中,threshold中的每一個元素由兩個值構成,用來表示一個范圍。

WindowOrientationListener會注冊一個Accelerator類型的SensorEventListener,當有新的SensorEvent產生時,調用filterOrientation產生一個int orientation值。這個值會在threshold的各個元素表示的范圍中匹配,看會落在哪個范圍。假設當前屏幕方向為ROTATION_0,那麼threshold={{60, 165}, {165, 195}, {195, 300}},假設這個時候把屏幕左側翻起90度。filterOrientation計算出的orientation值落在了第三個元素范圍內,那麼去ROTATE_TO_WITH_180中尋找與它對應的值,發現是ROTATION_270,那麼就把當前屏幕旋轉方向改變為270度。threshold的取值就變成了THRESHOLDS_WITH_180[2]。當把屏幕再次放平時,filterOrientation計算出的orientation值會落在第一個元素表示的范圍內。去ROTATE_TO_WITH_180中尋找與它對應的值,發現是ROTATION_0,那麼當前屏幕旋轉方向被改變為0度。
還有一個變數比較重要,mAllow180Rotation,這個變數設置為false時,就不使用THRESHOLDS_WITH_180和ROTATE_TO_WITH_180這一對數組來做上面這些變的了,就使用THRESHOLDS和ROTATE_TO。
其實,我研究了半天也沒有搞清filterOrientation的演算法以及THRESHOLDS_WITH_180和THRESHOLDS這兩個數組裡面的每個數字代表的具體意義。最後只搞清了上面的這個流程,還有ROTATION_0, ROTATION_90, ROTATION_270, ROTATION_180這四個角度分別代表哪四個方向。但這足以應付我們要做的事情了。
比如,我想讓屏幕最多隻旋轉90度和180度,不讓它有旋轉270度的機會。那就把ROTATE_TO_WITH_180裡面的ROTATION_270全部變成90度。這樣,應該旋轉到270度時,就會旋轉到90度了。如果不想讓屏幕旋轉,把所有值都改成ROTATION_0就可以了。

再深入挖掘一下這個話題
PhonwWindowManager是唯一實現WindowOrientationListener介面的類,它管理著整個設備界面的顯示。當PhonwWindowManager通過WindowOrientationListener知道屏幕方向發生旋轉時,會告訴WindowManagerService:
mWindowManager.setRotation(rotation, false, mFancyRotationAnimation);
而WindowManagerService得到這個通知後,會做兩個比較重要的事情:
1、Surface.setOrientation(0, rotation, animFlags);
2、mRotationWatchers.get(i).onRotationChanged(rotation);
我們知道,每個Activity都有一個View樹,每個View樹都是繪畫在一個Surface上面的。通過上面這兩步,先把Surface給旋轉了,再告訴Activity重新繪制View樹,就完了整個屏幕的旋轉。

E. android怎麼設置橫豎屏切換

方法一:

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

F. 安卓手機如何關閉自動旋轉屏幕功能怎麼打開

從手機上打開
設置,
從設置項列表進入
顯示,
在顯示設置項中,就可打開或關閉
自動旋轉了
想要更方便得進行切換的話,可從桌面屏幕往下劃,
如果在快捷鍵列表中有
自動旋轉按鈕,則可以通過點擊來實現切換,否則可進入
編輯,

自動旋轉拖動到上面對應位置,
確認
拖動替換替換,
這樣以後,想開關自動旋轉功能,就可以通過下劃桌面中的開關進行切換了.

G. android中怎麼處理屏幕旋轉

直接配置activity的android:configChanges="orientation|screenSize"就ok

H. android中如何禁止豎屏,且橫屏可以旋轉

1、在AndroidManifest.xml里設置

android:screenOrientation="landscape", 強制橫屏 ,不旋轉

android:screenOrientation="sensorLandscape" 強制橫屏,可旋轉

常見屬性:

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

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

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

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

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

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

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

2、在activity中設置

java">@Override
protectedvoidonResume(){
super.onResume();
Log.i(TAG,"onResumecalled.");
try{
//強制橫屏,不允許橫屏旋轉
//ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE
//強制橫屏,允許橫屏旋轉
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_SENSOR_LANDSCAPE);
}catch(NullPointerExceptione){}
}

I. android屏幕旋轉 如何程序實現屏幕旋轉。 按1個按鈕旋轉90°

屏幕旋轉需要在AndroidManifest.xml的的Activity配置中加入android:screenOrientation=」landscape」屬性。

參數說明:

  1. landscape = 橫向

  2. portrait = 縱向


避免在轉屏時重啟Activity

  1. android中每次屏幕方向切換時都會重啟Activity,所以應該在Activity銷毀前保存當前活動的狀態,在Activity再次 Create的時候載入配置,那樣,進行中的游戲就不會自動重啟了。

  2. 要避免在轉屏時重啟Activity,可以通過在AndroidManifest.xml文件中重新定義方向(給每個Activity加上android:configChanges=」keyboardHidden|orientation」屬性)。

  3. 在需要控制屏幕顯示方向的Activity中重寫onConfigurationChanged(Configuration newConfig)方法。

J. android x86如何旋轉屏幕

方法一:鎖定屏幕方向(推薦)

在主界面頂部右側往下拉,點擊「自動旋轉」圖標開啟屏幕方向鎖定。

熱點內容
自己怎麼搭建網站伺服器 發布:2025-08-22 00:36:54 瀏覽:141
按鍵精靈只能做手游腳本嗎 發布:2025-08-22 00:31:22 瀏覽:152
php網站製作 發布:2025-08-22 00:31:19 瀏覽:488
java的http編程 發布:2025-08-21 23:56:32 瀏覽:988
大學資料庫試題 發布:2025-08-21 23:56:28 瀏覽:801
沾福卡的演算法 發布:2025-08-21 23:38:26 瀏覽:337
java極光 發布:2025-08-21 23:38:14 瀏覽:709
php路由框架 發布:2025-08-21 23:32:17 瀏覽:771
超微ipmi無法解析伺服器dns地址 發布:2025-08-21 23:31:14 瀏覽:162
私服魔域腳本 發布:2025-08-21 23:29:34 瀏覽:55