當前位置:首頁 » 安卓系統 » android屏幕方向

android屏幕方向

發布時間: 2022-08-12 01:55:50

1. 聯想A1 pad(Android 2.3)如何將默認屏幕方向設置為橫屏

您好。
首先聯想A1 Pad屏幕主頁是不支持橫屏顯示的,開啟翻轉功能菜單為:設置--顯示及感測器設置-自動旋轉屏幕,開啟後即可實現翻轉功能,但也需要由軟體本身支持性所決定。
由於安卓設備碎片化較為嚴重,故並非所有軟體即可適用於手機設備與平板設備,若您的平板電腦使用手機設備專用的軟體,則可能無法實現部分功能,如橫屏翻轉,故這里建議您下載平板電腦專用軟體進行使用。
此外,也並非所有平板電腦專用軟體皆有設計橫屏翻轉功能,這需要取決於軟體開發商的設計,請您了解。

如有其他疑問,歡迎您隨時與我們聯系或訪問聯想樂問吧(http://ask.lenovomobile.com)進行咨詢了解。

2. 如何在啟動時讓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樹,就完了整個屏幕的旋轉。

3. 如何讓Android屏幕只能上下翻轉

需要在AndroidManifest.xml文件中加入android:screenOrientation屬性限制。
例如:
<activity
android:name="com.project.MainActivity"
android:label="@string/app_name"
android:screenOrientation="landscape">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
該屬性有一下值:"landscape"為橫向,「portrait」為縱向 ,"user" 為用戶當前的首選方向

4. 如何在 Android 程序中禁止屏幕旋轉和重啟Activity

1.在androidmanifest.xml的每一個需要禁止轉向的activity配置中加入
android:screenorientation=」landscape」
屬性。
landscape
=
橫向
portrait
=
縱向
2.android中每次屏幕方向切換時都會重啟activity,所以應該在activity銷毀前保存當前活動的狀態,
在activity再次
create的時候載入配置,那樣,進行中的游戲就不會自動重啟了!
要避免在轉屏時重啟activity,可以通過在androidmanifest.xml文件中重新定義方向(給每個activity
加上
android:configchanges=」keyboardhidden|orientation」屬性)。
在需要控制屏幕顯示方向的activity中重寫
onconfigurationchanged(configuration
newconfig)方
法,這樣在轉屏時就不會重啟activity了

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

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

6. 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了。

7. 如何讓安卓手機判定屏幕旋轉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造成的卡頓與短暫的黑屏切換。

8. 我的安卓手機刷機後屏幕的顯示方向是反的

手機屏幕為什麼會倒過來呢?
這一般是由於換屏導致的。部分手機,如果換屏時,沒有換原裝的屏幕,那麼手機就存在隱患——當時可能是正常的,但是一旦系統變化,比如說刷機,手機的屏幕就會倒過來。
那麼遇到這種情況怎麼辦呢?可以重新選擇一個刷機包刷機試試,或者在手機的USB調試中,找到「強制屏幕反轉」的字樣,打勾即可。或者你也可以先打開自動旋轉屏幕,然後將手機倒立,再關閉自動旋轉,這就恢復啦!

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

//調用這兩句可以監聽屏幕方向變化
PhotoOrientationListener pl= new PhotoOrientationListener(this);
pl.enable();

//監聽事件
private class PhotoOrientationListener extends OrientationEventListener {

public PhotoOrientationListener(Context context) {
super(context);
}

@Override
public void onOrientationChanged(int i) {
if (45 <= i && i < 135) {//右邊 豎屏

} else if (135 <= i && i < 225) {//下邊 橫屏

} else if (225 <= i && i < 315) {//左邊 豎屏

} else {//上邊 橫屏

}

}
}

10. android x86 強制橫屏

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

熱點內容
winsock搜伺服器ip 發布:2025-01-18 03:49:32 瀏覽:393
安卓手機藍牙默認地址在哪裡 發布:2025-01-18 03:47:57 瀏覽:906
shell腳本文件路徑 發布:2025-01-18 03:40:31 瀏覽:483
sql語句執行錯誤 發布:2025-01-18 03:21:49 瀏覽:651
資料庫雙引號 發布:2025-01-18 03:10:20 瀏覽:79
學java和php 發布:2025-01-18 03:01:03 瀏覽:452
怎麼開伺服器的埠 發布:2025-01-18 02:54:23 瀏覽:648
別克君越編程 發布:2025-01-18 02:32:24 瀏覽:914
ftp游戲下載網站 發布:2025-01-18 02:09:04 瀏覽:628
python調用另一個文件中的函數 發布:2025-01-18 02:03:54 瀏覽:597