導航:首頁 > 操作系統 > android獲取屏幕方向

android獲取屏幕方向

發布時間:2022-05-21 16:22:31

android如何在代碼中判斷橫豎屏

Android中判斷橫豎屏是通過Configuration
這個類來判斷的。
1.
Configuration.ORIENTATION_
LANDSCAPE

表示橫屏。
2.
Configuration.ORIENTATION_PORTRAIT表示豎屏。
以下是完整代碼:
public
boolean
isScreenChange()
{
Configuration
mConfiguration
=
context.getResources().getConfiguration();
//獲取設置的配置信息
int
ori
=
mConfiguration.
orientation

;
//獲取屏幕方向
if(ori
==
Configuration.ORIENTATION_LANDSCAPE){
//橫屏
return
true;
}else
if(ori
==
Configuration.ORIENTATION_PORTRAIT){
//豎屏
return
false;
}
return
false;
}
避免在轉屏時重啟Activity
android中每次屏幕方向切換時都會重啟Activity,所以應該在Activity銷毀前保存當前活動的狀態,在Activity再次
Create的時候載入配置,那樣,進行中的游戲就不會自動重啟了!
要避免在轉屏時重啟Activity,可以通過在AndroidManifest.
xml文件
中重新定義方向(給每個Activity加上 android:configChanges=」keyboardHidden|orientation」屬性)。
在需要控制屏幕顯示方向的Activity中重寫 onConfigurationChanged(Configuration
newConfig)方法,這樣在轉屏時就不會重啟Activity了。

Ⅱ android 強制設置橫屏 判斷是橫屏還是豎屏

判斷activity 是橫屏還是豎屏 方法 1: //根據設備配置信息 Configuration cf= this.getResources().getConfiguration(); //獲取設置的配置信息 int ori = cf.orientation ; //獲取屏幕方向 if(ori == cf.ORIENTATION_LANDSCAPE){ //橫屏 }else if(ori == cf.ORIENTATION_PORTRAIT){ //豎屏 } 方法2: 通過設備解析度還判斷 DisplayMetrics dm = new DisplayMetrics(); mLauncher.getWindowManager().getDefaultDisplay().getMetrics(dm); mWidth = dm.widthPixels; mHeight = dm.heightPixels; if (mHeight > mWidth){//layout port // 豎屏 ....... }else{//layout land // 橫屏 ....... } 設置程序 橫屏還是豎屏 有兩種方法 1:通過配置實習 2: 代碼實現 方法2://重寫activity onResume方法 @Override protected void onResume() { /** * 設置為橫屏 */ if(getRequestedOrientation()!=ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE){ setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE); //ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE :橫 //SCREEN_ORIENTATION_PORTRAIT:豎 } super.onResume(); } 方法2: 配置androidManifest.xml實現 在activity 中加入 android:screenOrientation="landscape" 信息即可 該屬性有兩個值 portrait//豎 landscape//橫 <activity android:name="MainActivity" android:label="@string/app_name" android:screenOrientation="landscape"> </activity> 搞定 快去試試 吧 不過細心的朋友 會發現 咦 當我屏幕的方向 發生變化的時候為啥 activity 的onCreate 怎麼會重新載入呢 原因是: 由於屏幕的旋轉會造出 當然的activity 元素關閉 從而造出activity重新載入 ,顯然這有時候並不是我們要的效果 , 那我們 在看看 如果解決這個問題吧 我們在androidManifest.xml 文件中 activity 節點加入紅色的 屬性 <activity android:name="MainActivity" android:label="@string/app_name" android:screenOrientation="landscape" android:configChanges="orientationkeyboardHidden"> </activity> 1、不設置Activity的android:configChanges時,切屏會重新調用各個生命周期,切橫屏時會執行一次,切豎屏時會執行兩次 2、設置Activity的android:configChanges="orientation"時,切屏還是會重新調用各個生命周期,切橫、豎屏時只會執行一次 3、設置Activity的android:configChanges="orientationkeyboardHidden"時,切屏不會重新調用各個生命周期,只會執行onConfigurationChanged方法 同時在Activity的Java文件中重載onConfigurationChanged(Configuration newConfig)這個方法,這樣就不會在布局切換或窗口切換時重載等方法。代碼如下: @Override public void onConfigurationChanged(Configuration newConfig) { super.onConfigurationChanged(newConfig); if (this.getResources().getConfiguration().orientation == Configuration.ORIENTATION_LANDSCAPE) { //land } else if (this.getResources().getConfiguration().orientation == Configuration.ORIENTATION_PORTRAIT) { //port } } //------------------------------------------------------ 關於Android中Activity的橫豎屏切換問題可以通過AndroidManifest.xml文件中的Activity來配置: android:screenOrientation=["unspecified" "user" "behind" "landscape" "portrait" "sensor" "nonsensor"] screenOrientation 用來指定Activity的在設備上顯示的方向,每個值代表如下含義: "unspecified" 默認值 由系統來判斷顯示方向.判定的策略是和設備相關的,所以不同的設備會有不同的顯示方向. "landscape" 橫屏顯示(寬比高要長) "portrait" 豎屏顯示(高比寬要長) "user" 用戶當前首選的方向 "behind" 和該Activity下面的那個Activity的方向一致(在Activity堆棧中的) "sensor" 有物理的感應器來決定。如果用戶旋轉設備這屏幕會橫豎屏切換。 "nosensor" 忽略物理感應器,這樣就不會隨著用戶旋轉設備而更改了 ( "unspecified"設置除外 )。

Ⅲ 如何檢測Android主屏幕的旋轉

三星手機開啟/關閉屏幕旋轉的操作方法:
1.雙指下拉頂簾,查找「屏幕旋轉」圖標,將其點綠即可開啟,反之關閉。
2.也可打開手機設定-顯示-查找「屏幕旋轉」-開啟/關閉即可。

Ⅳ Android怎樣判斷當前屏幕是否為橫屏狀態

Configuration mConfiguration = this.getResources().getConfiguration(); //獲取設置的配置信息int ori = mConfiguration.orientation; //獲取屏幕方向if (ori == mConfiguration.ORIENTATION_LANDSCAPE) { //橫屏
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);//強制為豎屏} else if (ori == mConfiguration.ORIENTATION_PORTRAIT) { //豎屏
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);//強制為橫屏}

Ⅳ android開發中怎麼指定程序屏幕方向

在AndroidManifest.xml的每一個需要禁止轉向的Activity配置中加入android:screenOrientation=」landscape」 屬性。 參數說明: landscape = 橫向 portrait = 縱向 避免在轉屏時重啟Activity android中每次屏幕方向切換時都會重啟Activity,所以應該在Activity銷毀前保存當前活動的狀態,在Activity再次 Create的時候載入配置,那樣,進行中的游戲就不會自動重啟了! 要避免在轉屏時重啟Activity,可以通過在AndroidManifest.xml文件中重新定義方向(給每個Activity加上 android:configChanges=」keyboardHiddenorientation」屬性)。 在需要控制屏幕顯示方向的Activity中重寫 onConfigurationChanged(Configuration newConfig)方法,這樣在轉屏時就不會重啟Activity了。

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

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


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

Ⅶ Android項目中能否判斷手機屏幕是 朝上 還是 朝下

// 獲取手機橫豎屏的方法
public boolean isScreenChange() {
Configuration mConfiguration = this.getResources().getConfiguration(); // 獲取設置的配置信息
int ori = mConfiguration.orientation; // 獲取屏幕方向
if (ori == Configuration.ORIENTATION_LANDSCAPE) {
// 橫屏
return true;
} else if (ori == Configuration.ORIENTATION_PORTRAIT) {
// 豎屏
return false;
}
return false;
}
這個方法來判斷是否是橫豎屏

Ⅷ Android項目中能否判斷手機屏幕是 朝上 還是 朝下!!!!

可以的。可以獲取屏幕的方向、

Ⅸ android7.1.2系統怎麼設置屏幕方向

摘要 方法一:在AndroidManifest.xml中配置

Ⅹ android 不是activity怎麼監測屏幕旋轉

Camera相關的程序,被屏幕旋轉搞得頭大,一方面得考慮屏幕旋轉後布局的變化,另一方面得搞清楚屏幕的旋轉方向、角度與Camera的Preview角度的關系。本來通過重載Activity的onConfigurationChanged方法,可以檢測到屏幕旋轉,但發現有一個問題,它只能檢測水平方向與垂直方向的切換,無法檢測180度的跳轉(例如:水平方向突然轉180度到水平方向),所以最後不得不換成OrientationEventListener方法來解決問題。在這里分享下經驗,並就此順便總結下Android開發中屏幕旋轉的處理吧。

1. 不做任何處理的情況下

如果沒有針對性地做任何處理的話,默認情況下,當用戶手機的重力感應器打開後,旋轉屏幕方向,會導致app的當前activity發生onDestroy-> onCreate,會重新構造當前activity和界面布局,很多橫屏/豎屏的布局如果沒有很好的設計的話,轉換為豎屏/橫屏後,會顯示地很難看。

如果想很好地支持屏幕旋轉,則建議在res中建立layout-land和layout-port兩個文件夾,把橫屏和豎屏的布局文件放入對應的layout文件夾中。

2. 如何設置固定的屏幕方向

在AndroidManifest.xml對應的 activity 屬性中,添加:

android:screenOrientation="landscape" //橫屏
android:screenOrientation="portrait" //豎屏

那麼,默認的情況下,應用啟動後,會固定為指定的屏幕方向,即使屏幕旋轉,Activity也不會出現銷毀或者轉向等任何反應。

3. 強制開啟屏幕旋轉效果

如果用戶的手機沒有開啟重力感應器或者在AndroidManifest.xml中設置了android:screenOrientation,默認情況下,該Activity不會響應屏幕旋轉事件。如果在這種情況下,依然希望Activity能響應屏幕旋轉,則添加如下代碼:

// activity的 onCreate 函數中
this.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_FULL_SENSOR);

4. 屏幕旋轉時,不希望activity被銷毀

如果希望捕獲屏幕旋轉事件,並且不希望activity 被銷毀,方法如下:

(1)在AndroidManifest.xml對應的activity屬性中,添加:

android:configChanges="orientation|screenSize"

(2)在對應的activity中,重載函數onConfigurationChanged

@Override
public voidonConfigurationChanged(Configuration newConfig) {
super.onConfigurationChanged(newConfig);
}

在該函數中可以通過兩種方法檢測當前的屏幕狀態:

第一種:

判斷newConfig是否等於Configuration.ORIENTATION_LANDSCAPE,Configuration.ORIENTATION_PORTRAIT

當然,這種方法只能判斷屏幕是否為橫屏,或者豎屏,不能獲取具體的旋轉角度。

第二種:

調用this.getWindowManager().getDefaultDisplay().getRotation();

該函數的返回值,有如下四種:

Surface.ROTATION_0,Surface.ROTATION_90,Surface.ROTATION_180,Surface.ROTATION_270

其中,Surface.ROTATION_0 表示的是手機豎屏方向向上,後面幾個以此為基準依次以順時針90度遞增。

(3) 這種方法的Bug

最近發現這種方法有一個Bug,它只能一次旋轉90度,如果你突然一下子旋轉180度,onConfigurationChanged函數不會被調用。

閱讀全文

與android獲取屏幕方向相關的資料

熱點內容
雲伺服器建設原理 瀏覽:256
javajunit4for 瀏覽:843
華為伺服器如何進陣列卡配置 瀏覽:433
apache伺服器ip地址訪問 瀏覽:718
如何買到安卓手機預裝軟體 瀏覽:537
冤罪百度雲不要壓縮 瀏覽:86
蘇州雲存儲伺服器 瀏覽:173
解壓收納原聲 瀏覽:384
java注冊驗證 瀏覽:375
火花app怎麼上推薦 瀏覽:980
什麼app能游戲投屏到電視上 瀏覽:455
伺服器託管到雲端是什麼意思 瀏覽:835
app保存草稿怎麼用 瀏覽:808
安卓如何進入proumb 瀏覽:144
主機虛擬雲伺服器 瀏覽:619
刪除分區加密的空間會不會恢復 瀏覽:706
京東app客戶上門怎麼看搜索量 瀏覽:741
怎麼在農行app購買黃金 瀏覽:46
c型開發板和單片機 瀏覽:146
虛擬機建立用戶的模板文件夾 瀏覽:905