這篇文章給大家分享的是有關(guān)Android開發(fā)如何實現(xiàn)瀏覽器全屏顯示功能的內(nèi)容。小編覺得挺實用的,因此分享給大家做個參考,一起跟隨小編過來看看吧。
創(chuàng)新互聯(lián)公司專業(yè)為企業(yè)提供江蘇網(wǎng)站建設(shè)、江蘇做網(wǎng)站、江蘇網(wǎng)站設(shè)計、江蘇網(wǎng)站制作等企業(yè)網(wǎng)站建設(shè)、網(wǎng)頁設(shè)計與制作、江蘇企業(yè)網(wǎng)站模板建站服務(wù),10年江蘇做網(wǎng)站經(jīng)驗,不只是建網(wǎng)站,更提供有價值的思路和整體網(wǎng)絡(luò)服務(wù)。
具體如下:
業(yè)務(wù)需求:瀏覽器設(shè)置中支持全屏顯示的功能。
分析:只需要在設(shè)置界面上增加是否全屏的checkBox , 然后 BrowserActivity 中讀取這個值, 來設(shè)置窗口的 Style.
修改:
1. 修改項目下的 res/xml 文件夾下的 browser_preferences.xml 文件, 添加
<CheckBoxPreference android:key="full_screen" android:defaultValue="false" android:title="@string/pref_full_screen" android:summary="@string/pref_full_screen_summary" />
2. BrowserActivity中創(chuàng)建 SetScreen()
方法
public void setScreen(){ //set to full screen if necessary SharedPreferences sp = getSharedPreferences(this.getPackageName()+"_preferences", Context.MODE_WORLD_READABLE); Boolean isFullScreen = sp.getBoolean(BrowserSettings.PREF_FULL_SCREEN, false); //if search dialog is open, we should quit full screen. if(isFullScreen && !isSearchDialogOpen){ getWindow().addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN); getWindow().clearFlags(WindowManager.LayoutParams.FLAG_FORCE_NOT_FULLSCREEN); } else{ getWindow().addFlags(WindowManager.LayoutParams.FLAG_FORCE_NOT_FULLSCREEN); getWindow().clearFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN); } }
如果我們第一次進入瀏覽器是非全屏, 然后進入設(shè)置修改成全屏模式, 這時候返回到BrowserActivity , 全屏模式必須馬上切換過來。 所以我們在 OnResume()
里面調(diào)用 setScreen()
, 不要在 onCreate()
里面調(diào) .
3. 大家可能注意到了, 判斷全屏切換時有個 isSearchDialogOpen 變量, 這是用來控制在搜索框出現(xiàn)時的全屏切換的。 因為點擊進地址欄時會調(diào)用系統(tǒng)的搜索框控件, 而這個控件不屬于瀏覽器, 是個單獨的窗口, 并且一開始創(chuàng)建時是有標(biāo)題欄的。這時候如果設(shè)置成無標(biāo)題欄的風(fēng)格時, 就會出現(xiàn)標(biāo)題欄先出現(xiàn), 然后又隱藏上去, 并且有 2-3 次反復(fù)的情況,用戶體驗非常糟糕。 這里就做了個折中, 當(dāng)搜索框出現(xiàn)時, 切換成非全屏模式, 這樣標(biāo)題欄就一直在那里,不會來回閃了。 退出搜索時,如果設(shè)置的是全屏,再切換成全屏模式。 所以在搜索框出現(xiàn)和消失時的代碼部分, 還要做相應(yīng)修改。 見如下代碼:
public void startSearch(String initialQuery, Boolean selectInitialQuery,Bundle appSearchData, Boolean globalSearch) { if (appSearchData == null) { appSearchData = createGoogleSearchSourceBundle(GOOGLE_SEARCH_SOURCE_TYPE); } SearchEngine searchEngine = mSettings.getSearchEngine(); if (searchEngine != null && !searchEngine.supportsVoiceSearch()) { //appSearchData.putBoolean(SearchManager.DISABLE_VOICE_SEARCH, true); } //show status bar when search window pops up. isSearchDialogOpen = true; //show status bar when search window pops up. getWindow().addFlags(WindowManager.LayoutParams.FLAG_FORCE_NOT_FULLSCREEN); getWindow().clearFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN); super.startSearch(initialQuery, selectInitialQuery, appSearchData, globalSearch); }
搜索框消失部分:
//switch to full screen if necessary when search window disappears. public void onDismiss() { isSearchDialogOpen = false; setScreen(); }
(PS: BrowserActivity 必須繼承 OnDismissListener 接口才有 onDismiss 方法。)
感謝各位的閱讀!關(guān)于“Android開發(fā)如何實現(xiàn)瀏覽器全屏顯示功能”這篇文章就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,讓大家可以學(xué)到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!
網(wǎng)頁題目:Android開發(fā)如何實現(xiàn)瀏覽器全屏顯示功能
分享路徑:http://aaarwkj.com/article12/iiojgc.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站策劃、企業(yè)建站、做網(wǎng)站、全網(wǎng)營銷推廣、網(wǎng)頁設(shè)計公司、手機網(wǎng)站建設(shè)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)