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

具體如下:
業(yè)務(wù)需求:瀏覽器設(shè)置中支持全屏顯示的功能。
分析:只需要在設(shè)置界面上增加是否全屏的checkBox , 然后 BrowserActivity 中讀取這個(gè)值, 來設(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 , 全屏模式必須馬上切換過來。 所以我們在 OnResume() 里面調(diào)用 setScreen() , 不要在 onCreate() 里面調(diào) .
3. 大家可能注意到了, 判斷全屏切換時(shí)有個(gè) isSearchDialogOpen 變量, 這是用來控制在搜索框出現(xiàn)時(shí)的全屏切換的。 因?yàn)辄c(diǎn)擊進(jìn)地址欄時(shí)會調(diào)用系統(tǒng)的搜索框控件, 而這個(gè)控件不屬于瀏覽器, 是個(gè)單獨(dú)的窗口, 并且一開始創(chuàng)建時(shí)是有標(biāo)題欄的。這時(shí)候如果設(shè)置成無標(biāo)題欄的風(fēng)格時(shí), 就會出現(xiàn)標(biāo)題欄先出現(xiàn), 然后又隱藏上去, 并且有 2-3 次反復(fù)的情況,用戶體驗(yàn)非常糟糕。 這里就做了個(gè)折中, 當(dāng)搜索框出現(xiàn)時(shí), 切換成非全屏模式, 這樣標(biāo)題欄就一直在那里,不會來回閃了。 退出搜索時(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)容可以對大家有一定的幫助,讓大家可以學(xué)到更多知識,如果覺得文章不錯(cuò),可以把它分享出去讓更多的人看到吧!
文章題目:Android開發(fā)如何實(shí)現(xiàn)瀏覽器全屏顯示功能-創(chuàng)新互聯(lián)
地址分享:http://chinadenli.net/article30/cohcso.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供手機(jī)網(wǎng)站建設(shè)、企業(yè)建站、用戶體驗(yàn)、面包屑導(dǎo)航、品牌網(wǎng)站制作、微信公眾號
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容