懂視移動端 視頻1 視頻21 視頻41 視頻61 視頻文章1 視頻文章21 視頻文章41 視頻文章61 推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37 推薦39 推薦41 推薦43 推薦45 推薦47 推薦49 關(guān)鍵詞1 關(guān)鍵詞101 關(guān)鍵詞201 關(guān)鍵詞301 關(guān)鍵詞401 關(guān)鍵詞501 關(guān)鍵詞601 關(guān)鍵詞701 關(guān)鍵詞801 關(guān)鍵詞901 關(guān)鍵詞1001 關(guān)鍵詞1101 關(guān)鍵詞1201 關(guān)鍵詞1301 關(guān)鍵詞1401 關(guān)鍵詞1501 關(guān)鍵詞1601 關(guān)鍵詞1701 關(guān)鍵詞1801 關(guān)鍵詞1901 視頻擴(kuò)展1 視頻擴(kuò)展6 視頻擴(kuò)展11 視頻擴(kuò)展16 文章1 文章201 文章401 文章601 文章801 文章1001 資訊1 資訊501 資訊1001 資訊1501 標(biāo)簽1 標(biāo)簽501 標(biāo)簽1001 關(guān)鍵詞1 關(guān)鍵詞501 關(guān)鍵詞1001 關(guān)鍵詞1501
問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
當(dāng)前位置: 首頁 - 手機(jī) - 正文

沉浸式模式是什么

來源:懂視網(wǎng) 責(zé)編:小OO 時間:2020-03-19 16:52:57
導(dǎo)讀沉浸式就是要給用戶提供完全沉浸的體驗,使用戶有一種置身于虛擬世界之中的感覺。比如說現(xiàn)在大熱的VR就是主打的沉浸式體驗。那么對應(yīng)到Android操作系統(tǒng)上面,怎樣才算是沉浸式體驗?zāi)兀窟@個可能在大多數(shù)情況下都是用不到的,不過在玩游戲或者看電影的時候就非常重要了。因為游戲或者影視類的應(yīng)用都希望能讓用戶完全沉浸在其中,享受它們提供的娛樂內(nèi)容,但如果這個時候在屏幕的上方還顯示一個系統(tǒng)狀態(tài)欄的話,可能就會讓用戶分分鐘產(chǎn)生跳戲的感覺。接下來,為大家具體介紹一下沉浸式模式。方法我們來看一下比較好的游戲都是怎么實...
沉浸式就是要給用戶提供完全沉浸的體驗,使用戶有一種置身于虛擬世界之中的感覺。比如說現(xiàn)在大熱的VR就是主打的沉浸式體驗。那么對應(yīng)到Android操作系統(tǒng)上面,怎樣才算是沉浸式體驗?zāi)兀窟@個可能在大多數(shù)情況下都是用不到的,不過在玩游戲或者看電影的時候就非常重要了。因為游戲或者影視類的應(yīng)用都希望能讓用戶完全沉浸在其中,享受它們提供的娛樂內(nèi)容,但如果這個時候在屏幕的上方還顯示一個系統(tǒng)狀態(tài)欄的話,可能就會讓用戶分分鐘產(chǎn)生跳戲的感覺。接下來,為大家具體介紹一下沉浸式模式。

方法

我們來看一下比較好的游戲都是怎么實現(xiàn)的,比如說海島奇兵。海島奇兵的這種模式就是典型的沉浸式模式,它的整個屏幕中顯示都是游戲的內(nèi)容,沒有狀態(tài)欄也沒有導(dǎo)航欄,用戶玩游戲的時候就可以完全沉浸在游戲當(dāng)中,而不會被一些系統(tǒng)的界面元素所打擾。

然后我們再來看一下愛奇藝的實現(xiàn)。同樣也是類似的,愛奇藝將整個屏幕作為影視的展示區(qū),用戶在看電影的時候眼中就只會有電影的內(nèi)容,這樣就不會被其他一些無關(guān)的東西所分心。這才是沉浸式模式的真正含義,所謂的“沉浸式狀態(tài)欄”這種叫法是不對的,完全都沒搞懂“沉浸式” 這三個字是什么意思。不過雖然聽上去好像是很高大上的沉浸式效果,實際看上去貌似就是將內(nèi)容全屏化了而已。沒錯,Android沉浸式模式的本質(zhì)就是全屏化,不過我們今天的內(nèi)容并不僅限于此,下面我們就開始來一步步學(xué)習(xí)吧。

一個Android應(yīng)用程序的界面上其實是有很多系統(tǒng)元素的,觀察下圖,可以看到,有狀態(tài)欄、ActionBar、導(dǎo)航欄等。而打造沉浸式模式的用戶體驗,就是要將這些系統(tǒng)元素全部隱藏,只留下主體內(nèi)容部分。

比如說我現(xiàn)在新建了一個空項目,然后修改布局文件中的代碼,在里面加入一個ImageView,如下所示:

這里將ImageView的寬和高都設(shè)置成match_parent,讓圖片充滿屏幕?,F(xiàn)在運行一下程序,效果如下圖所示。

如果你將圖片理解成游戲或者電影界面的話,那這個體驗離沉浸式就差得太遠(yuǎn)了,至少狀態(tài)欄和ActionBar得要隱藏起來了吧?沒關(guān)系,我們一步步進(jìn)行優(yōu)化,并且在優(yōu)化中學(xué)習(xí)。隱藏狀態(tài)欄和ActionBar的方式在4.1系統(tǒng)之上和4.1系統(tǒng)之下還是不一樣的,這里我就不準(zhǔn)備考慮4.1系統(tǒng)之下的兼容性了,因為過于老的系統(tǒng)根本就沒有提供沉浸式體驗的支持。修改MainActivity中的代碼,如下所示:

這里先調(diào)用getWindow().getDecorView()方法獲取到了當(dāng)前界面的DecorView,然后調(diào)用它的setSystemUiVisibility()方法來設(shè)置系統(tǒng)UI元素的可見性。其中,SYSTEM_UI_FLAG_FULLSCREEN表示全屏的意思,也就是會將狀態(tài)欄隱藏。另外,根據(jù)Android的設(shè)計建議,ActionBar是不應(yīng)該獨立于狀態(tài)欄而單獨顯示的,因此狀態(tài)欄如果隱藏了,我們同時也需要調(diào)用ActionBar的hide()方法將ActionBar也進(jìn)行隱藏。現(xiàn)在重新運行一下程序,效果如下圖所示。

雖說這才是正統(tǒng)的沉浸式含義,但有些朋友可能想實現(xiàn)的就是餓了么那樣的狀態(tài)欄效果,而不是直接把整個系統(tǒng)狀態(tài)欄給隱藏掉,那么又該如何實現(xiàn)呢?其實也很簡單,只需要借助另外一種UI Flag就可以了,如下所示:

首先需要注意,餓了么這樣的效果是只有5.0及以上系統(tǒng)才支持,因此這里先進(jìn)行了一層if判斷,只有系統(tǒng)版本大于或等于5.0的時候才會執(zhí)行下面的代碼。接下來我們使用了SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN和SYSTEM_UI_FLAG_LAYOUT_STABLE,注意兩個Flag必須要結(jié)合在一起使用,表示會讓應(yīng)用的主體內(nèi)容占用系統(tǒng)狀態(tài)欄的空間,最后再調(diào)用Window的setStatusBarColor()方法將狀態(tài)欄設(shè)置成透明色就可以了?,F(xiàn)在重新運行一下代碼,效果如下圖所示。可以看到,類似于餓了么的狀態(tài)欄效果就成功實現(xiàn)了。再聲明一次,這種效果不叫沉浸式狀態(tài)欄,也完全沒有沉浸式狀態(tài)欄這種說法,我們估且可以把它叫做透明狀態(tài)欄效果吧。

現(xiàn)在我們已經(jīng)成功實現(xiàn)隱藏狀態(tài)欄的效果了,不過屏幕下方的導(dǎo)航欄還比較刺眼,接下來我們就學(xué)習(xí)一下如何將導(dǎo)航欄也進(jìn)行隱藏。其實實現(xiàn)的原理都是一樣的,隱藏導(dǎo)航欄也就是使用了不同的UI Flag而已,修改MainActivity中的代碼,如下所示:

這里我們同時使用了SYSTEM_UI_FLAG_HIDE_NAVIGATION和SYSTEM_UI_FLAG_FULLSCREEN,這樣就可以將狀態(tài)欄和導(dǎo)航欄同時隱藏了?,F(xiàn)在重新運行一下程序,效果如圖所示。

除了隱藏導(dǎo)航欄之外,我們同樣也可以實現(xiàn)和剛才透明狀態(tài)欄類似的效果,制作一個透明導(dǎo)航欄:

這里使用了SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION,表示會讓應(yīng)用的主體內(nèi)容占用系統(tǒng)導(dǎo)航欄的空間,然后又調(diào)用了setNavigationBarColor()方法將導(dǎo)航欄設(shè)置成透明色?,F(xiàn)在重新運行一下程序,效果如下圖所示。

雖說沉浸式導(dǎo)航欄這個東西是被很多人誤叫的一種稱呼,但沉浸式模式的確是存在的。那么我們?nèi)绾尾拍軐崿F(xiàn)像海島奇兵以及愛奇藝那樣的沉浸式模式呢?首先你應(yīng)該確定自己是否真的需要這個功能,因為除了像游戲或者視頻軟件這類特殊的應(yīng)用,大多數(shù)的應(yīng)用程序都是用不到沉浸式模式的。當(dāng)你確定要使用沉浸式模式,那么只需要重寫Activity的onWindowFocusChanged()方法,然后加入如下邏輯即可:

沉浸式模式的UI Flag就這些,也沒什么好解釋的,如果你需要實現(xiàn)沉浸式模式,直接將上面的代碼復(fù)制過去就行了。需要注意的是,只有在Android 4.4及以上系統(tǒng)才支持沉浸式模式,因此這里也是加入了if判斷。另外,為了讓我們的界面看上去更像是游戲,這里我將MainActivity設(shè)置成了橫屏模式:

這樣我們就實現(xiàn)類似于海島奇兵和愛奇藝的沉浸式模式效果了,如下圖所示。可以看到,界面默認(rèn)情況下是全屏的,狀態(tài)欄和導(dǎo)航欄都不會顯示。而當(dāng)我們需要用到狀態(tài)欄或?qū)Ш綑跁r,只需要在屏幕頂部向下拉,或者在屏幕右側(cè)向左拉,狀態(tài)欄和導(dǎo)航欄就會顯示出來,此時界面上任何元素的顯示或大小都不會受影響。過一段時間后如果沒有任何操作,狀態(tài)欄和導(dǎo)航欄又會自動隱藏起來,重新回到全屏狀態(tài)。這就是最標(biāo)準(zhǔn)的沉浸式模式。

聲明:本網(wǎng)頁內(nèi)容旨在傳播知識,若有侵權(quán)等問題請及時與本網(wǎng)聯(lián)系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

  • 熱門焦點

最新推薦

猜你喜歡

熱門推薦

google瀏覽器怎么設(shè)置主頁 系統(tǒng)exe打開方式還原的方法 Photoshop怎樣儲存選區(qū) win7中java環(huán)境變量設(shè)置,win7如何配置java環(huán)境 電腦怎樣重裝系統(tǒng)簡單又快速 Win10怎樣設(shè)置屏保密碼 個人信用記錄怎么在網(wǎng)上查詢 WPS如何清除格式 如何編輯優(yōu)質(zhì)微信公眾平臺內(nèi)容 不越獄更換iPhone鈴聲的方法 CAD中軸測圖的尺寸標(biāo)注方法 手機(jī)怎樣實現(xiàn)軟件搬家 PS利用匹配顏色快速為圖片換色 飛機(jī)上可以使用手機(jī)了,這是怎么一回事呢? 如何制作二寸照片 如何利用格式工廠將視頻轉(zhuǎn)音頻 Win7語言欄不見了怎么辦 教你如何去掉AutoCAD教育版戳記 怎樣把網(wǎng)站制作成自己的手機(jī)APP 虛擬光驅(qū)重裝win7系統(tǒng)的方法 養(yǎng)老金領(lǐng)取計算方法 如何讓自己的網(wǎng)站快速被百度收錄 win8/win8.1怎樣進(jìn)入Bios 此網(wǎng)站的安全證書有問題解決方法 《真三國無雙7:猛將傳》新手技能與武器屬性選擇 Windows下 VM12虛擬機(jī)安裝OS X 10.11的方法 如何在創(chuàng)世中文網(wǎng)申請成為作者 綠豆湯會變紅是什么原因 怎樣查看身份證綁定了幾個支付寶 如何把微信里占用內(nèi)存的消息記錄刪除 微信使用技巧之如何通過二維碼添加好友 怎么修改電腦時間? cad中如何使用剖切命令 如何給excel加密 CAD中怎么改變布局中的背景顏色 wps表格中如何讓表頭固定不動 免費視頻合并軟件哪個好 電腦已經(jīng)開機(jī)了,但是顯示器不顯示--怎么辦 igs文件怎么打開 手機(jī)截屏圖片儲存在哪里
Top