Android強(qiáng)制設(shè)定橫屏?xí)r,SurfaceView一直黑屏
接著上一個(gè)問題,解決了SurfaceView閃屏問題之后(http://chabaoo.cn/article/101909.htm),又有了一個(gè)新的問題?,F(xiàn)在我想設(shè)置含有fragment+viewpager的activity橫屏。其中一個(gè)fragment有視頻播放功能,含SurfaceView.
當(dāng)我橫屏拿著平板時(shí),打開程序進(jìn)入到該activity,是正常的。當(dāng)豎屏拿著打開程序進(jìn)入到該activity時(shí),就會(huì)一直處于黑屏的狀態(tài)。原因應(yīng)該還是SurfaceView。難道程序轉(zhuǎn)入后臺(tái)或者黑屏以后(只要是不繪制狀態(tài)),屏幕方向就是系統(tǒng)默認(rèn)的屏幕方向嗎?
解決:
1.在AndroidManifest.xml的對(duì)應(yīng)的activty中,設(shè)置android:screenOrientation="nosensor",即 忽略物理感應(yīng)器,這樣就不會(huì)隨著用戶旋轉(zhuǎn)設(shè)備而更改了 ( "unspecified"設(shè)置除外 )
設(shè)置android:configChanges="orientation|keyboardHidden|keyboard",橫豎屏切換時(shí),不會(huì)重新加載頁面。
2.在對(duì)應(yīng)的Activity中設(shè)置橫屏。setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
相關(guān)詳解:關(guān)于Android設(shè)置全屏和橫屏
橫屏設(shè)置
XML文件設(shè)置--portrait為縱向,landscape為橫向
android:screenOrientation=["unspecified" | "user" | "behind" |"landscape" | "portrait" | "sensor" | "nonsensor"]
screenOrientation 用來指定Activity的在設(shè)備上顯示的方向,每個(gè)值代表如下含義:
"unspecified" 默認(rèn)值 由系統(tǒng)來判斷顯示方向.判定的策略是和設(shè)備相關(guān)的,所以不同的設(shè)備會(huì)有不同的顯示方向.
"landscape" 橫屏顯示(寬比高要長(zhǎng))
"portrait" 豎屏顯示(高比寬要長(zhǎng))
"user" 用戶當(dāng)前首選的方向
"behind" 和該Activity下面的那個(gè)Activity的方向一致(在Activity堆棧中的)
"sensor" 有物理的感應(yīng)器來決定。如果用戶旋轉(zhuǎn)設(shè)備這屏幕會(huì)橫豎屏切換。
"nosensor" 忽略物理感應(yīng)器,這樣就不會(huì)隨著用戶旋轉(zhuǎn)設(shè)備而更改了 ( "unspecified"設(shè)置除外 )。
代碼設(shè)置
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
全屏兩種方法:
方法一:java代碼
public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); //設(shè)置無標(biāo)題 requestWindowFeature(Window.FEATURE_NO_TITLE); //設(shè)置全屏 getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN); setContentView(R.layout.main); }
方法二:xml布局
<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.andyidea" android:versionCode="1" android:versionName="1.0" > <uses-sdk android:minSdkVersion="8" /> <application android:icon="@drawable/icon" android:label="@string/app_name" > <activity android:name=".login.LoginActivity" android:label="@string/app_name" android:theme="@android:style/android.NoTitleBar.Fullscreen" > <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> </application> </manifest>
以上就是本文的全部?jī)?nèi)容,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作能帶來一定的幫助,同時(shí)也希望多多支持腳本之家!
- Android判斷屏幕是橫屏或是豎屏的簡(jiǎn)單實(shí)現(xiàn)方法
- 基于jQuery的判斷iPad、iPhone、Android是橫屏還是豎屏的代碼
- Android如何禁止橫屏豎屏的變換
- Android開發(fā)強(qiáng)制橫屏和強(qiáng)制豎屏設(shè)置實(shí)例代碼
- Android禁止橫屏豎屏切換的有效方法
- Android 4.4.2 橫屏應(yīng)用隱藏狀態(tài)欄和底部虛擬鍵的方法
- Android 5.0 開機(jī)橫屏修改方法
- android橫豎屏切換時(shí)候Activity的生命周期
- Android編程判斷橫屏、豎屏及設(shè)置橫豎屏的方法
相關(guān)文章
RecyclerView進(jìn)階:使用ItemTouchHelper實(shí)現(xiàn)拖拽和側(cè)滑刪除效果
現(xiàn)在RecyclerView的應(yīng)用越來越廣泛了,本篇文章主要介紹了RecyclerView進(jìn)階:使用ItemTouchHelper實(shí)現(xiàn)拖拽和側(cè)滑刪除效果,具有一定的參考價(jià)值,有興趣的可以了解一下。2017-02-02Android Drawerlayout側(cè)拉欄事件傳遞問題的解決方法
這篇文章主要為大家詳細(xì)介紹了Android Drawerlayout側(cè)拉欄事件傳遞問題的解決方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2016-11-11詳解Android 在 ViewPager 中使用 Fragment 的懶加載
本篇文章主要介紹了Android 在 ViewPager 中使用 Fragment 的懶加載,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-06-06詳解Android如何實(shí)現(xiàn)自定義的動(dòng)畫曲線
最近在寫動(dòng)畫相關(guān)的篇章,經(jīng)常會(huì)用到 Curve 這個(gè)動(dòng)畫曲線類,那這個(gè)類到底怎么實(shí)現(xiàn)的?如果想自己來一個(gè)自定義的動(dòng)畫曲線該怎么弄?本文將為大家詳細(xì)解答2022-04-04Android實(shí)現(xiàn)超級(jí)棒的沉浸式體驗(yàn)教程
這篇文章主要給大家介紹了關(guān)于Android如何實(shí)現(xiàn)超級(jí)棒的沉浸式體驗(yàn)的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用Android具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2018-11-11分析Android App中內(nèi)置換膚功能的實(shí)現(xiàn)方式
這篇文章主要介紹了Android App中內(nèi)置換膚功能的實(shí)現(xiàn)方式,文中舉了一個(gè)類似QQ空間中換膚方式的例子作為說明,需要的朋友可以參考下2016-02-02