Android開發(fā)如何實(shí)現(xiàn)瀏覽器全屏顯示功能

這篇文章給大家分享的是有關(guān)Android開發(fā)如何實(shí)現(xiàn)瀏覽器全屏顯示功能的內(nèi)容。小編覺得挺實(shí)用的,因此分享給大家做個(gè)參考,一起跟隨小編過(guò)來(lái)看看吧。

創(chuàng)新互聯(lián)公司專業(yè)為企業(yè)提供江蘇網(wǎng)站建設(shè)、江蘇做網(wǎng)站、江蘇網(wǎng)站設(shè)計(jì)、江蘇網(wǎng)站制作等企業(yè)網(wǎng)站建設(shè)、網(wǎng)頁(yè)設(shè)計(jì)與制作、江蘇企業(yè)網(wǎng)站模板建站服務(wù),10年江蘇做網(wǎng)站經(jīng)驗(yàn),不只是建網(wǎng)站,更提供有價(jià)值的思路和整體網(wǎng)絡(luò)服務(wù)。

具體如下:

業(yè)務(wù)需求:瀏覽器設(shè)置中支持全屏顯示的功能。

分析:只需要在設(shè)置界面上增加是否全屏的checkBox , 然后 BrowserActivity 中讀取這個(gè)值, 來(lái)設(shè)置窗口的 Style.

修改:

1.  修改項(xiàng)目下的 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);
  }
}

如果我們第一次進(jìn)入瀏覽器是非全屏, 然后進(jìn)入設(shè)置修改成全屏模式, 這時(shí)候返回到BrowserActivity , 全屏模式必須馬上切換過(guò)來(lái)。 所以我們?cè)?OnResume() 里面調(diào)用 setScreen() , 不要在 onCreate() 里面調(diào) .

3. 大家可能注意到了, 判斷全屏切換時(shí)有個(gè) isSearchDialogOpen 變量, 這是用來(lái)控制在搜索框出現(xiàn)時(shí)的全屏切換的。 因?yàn)辄c(diǎn)擊進(jìn)地址欄時(shí)會(huì)調(diào)用系統(tǒng)的搜索框控件, 而這個(gè)控件不屬于瀏覽器, 是個(gè)單獨(dú)的窗口, 并且一開始創(chuàng)建時(shí)是有標(biāo)題欄的。這時(shí)候如果設(shè)置成無(wú)標(biāo)題欄的風(fēng)格時(shí), 就會(huì)出現(xiàn)標(biāo)題欄先出現(xiàn), 然后又隱藏上去, 并且有 2-3 次反復(fù)的情況,用戶體驗(yàn)非常糟糕。 這里就做了個(gè)折中, 當(dāng)搜索框出現(xiàn)時(shí), 切換成非全屏模式, 這樣標(biāo)題欄就一直在那里,不會(huì)來(lái)回閃了。 退出搜索時(shí),如果設(shè)置的是全屏,再切換成全屏模式。 所以在搜索框出現(xiàn)和消失時(shí)的代碼部分, 還要做相應(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ā)如何實(shí)現(xiàn)瀏覽器全屏顯示功能”這篇文章就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,讓大家可以學(xué)到更多知識(shí),如果覺得文章不錯(cuò),可以把它分享出去讓更多的人看到吧!

網(wǎng)頁(yè)題目:Android開發(fā)如何實(shí)現(xiàn)瀏覽器全屏顯示功能
分享路徑:http://muchs.cn/article12/iiojgc.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站策劃企業(yè)建站、做網(wǎng)站、全網(wǎng)營(yíng)銷推廣、網(wǎng)頁(yè)設(shè)計(jì)公司、手機(jī)網(wǎng)站建設(shè)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

小程序開發(fā)