android 浏览器全屏显示
业务需求:浏览器设置中支持全屏显示的功能。
分析:只需要在设置界面上增加是否全屏的checkBox , 然后 BrowserActivity 中读取这个值, 来设置窗口的 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中创建 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);
}
}
如果我们第一次进入浏览器是非全屏, 然后进入设置修改成全屏模式, 这时候返回到BrowserActivity , 全屏模式必须马上切换过来。 所以我们在 OnResume() 里面调用 setScreen() , 不要在 onCreate() 里面调 .
3. 大家可能注意到了, 判断全屏切换时有个 isSearchDialogOpen 变量, 这是用来控制在搜索框出现时的全屏切换的。 因为点击进地址栏时会调用系统的搜索框控件, 而这个控件不属于浏览器, 是个单独的窗口, 并且一开始创建时是有标题栏的。这时候如果设置成无标题栏的风格时, 就会出现标题栏先出现, 然后又隐藏上去, 并且有 2-3 次反复的情况,用户体验非常糟糕。 这里就做了个折中, 当搜索框出现时, 切换成非全屏模式, 这样标题栏就一直在那里,不会来回闪了。 退出搜索时,如果设置的是全屏,再切换成全屏模式。 所以在搜索框出现和消失时的代码部分, 还要做相应修改。 见如下代码:
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 方法。)
android 浏览器全屏显示相关推荐
- java安卓图片全屏_在Android中全屏显示GIF图片(演示代码)
[实例简介] 在Android中全屏显示GIF图片(演示代码),详细内容请参考:http://blog.csdn.net/u012939909/article/details/77418173 [实例 ...
- html 设置浏览器全屏显示,JavaScript控制浏览器全屏显示简单示例
本文实例讲述了JavaScript控制浏览器全屏显示.分享给大家供大家参考,具体如下: www.jb51.net JS全屏显示 全屏显示 退出全屏 // 判断各种浏览器,找到正确的方法 functio ...
- android webview全屏显示html内容
MainActivity.java文件修改 package com.example.wwy.webviewdemo;import android.support.v7.app.AppCompatAct ...
- Qt for Android 动态全屏显示
文章目录 前言 正文 实现全屏显示原理方法 Qt 实现的全屏和非全屏android代码 总结 前言 最近使用Qt开发安卓有这样一个需求,某一个页面可能需要全屏显示,也就是所谓的沉倾式显示,任务栏等都见 ...
- Android 设置全屏显示的方法
方法一:在 setContentView 之前设置如下代码 requestWindowFeature(Window.FEATURE_NO_TITLE); getWindow().setFlags(Wi ...
- android Activity全屏显示
设置Activity全屏显示的两种方式: 1.在Activity中动态的设置 requestWindowFeature(Window.FEATURE_NO_TITLE); getWindow().se ...
- Android APP全屏显示(去掉顶部状态栏和底部虚拟导航栏)以及使用AndroidAutoSize实现自适应
全屏显示 1.AndroidManifest设置APP样式android:theme,我项目中的Activity都是继承自Activity,如果是继承自AppCompatActivity,这里样式需要 ...
- h5页面实现浏览器全屏显示
目录 开启全屏显示 退出全屏显示 获取当前是否全屏状态 开启全屏显示 let el = document.documentElement; // 不同浏览器兼容方法调用 if(el.requestFu ...
- html5 safari浏览器 全屏显示 隐藏工具条,HTML5全屏API不IPhone SE Safari浏览器工作,也...
我想打一个div容器全屏等最新的iPhone,它在所有桌面浏览器和Android浏览器,但在iPhone浏览器(Safari浏览器)工作正常,它不管用.HTML5全屏API不IPhone SE Saf ...
最新文章
- 阿里达摩院2020趋势第一弹:感知智能的“天花板”和认知智能的“野望”(附链接)...
- Java程序员的春天!java引用数据类型和基本数据类型区别
- 软件项目组织管理(六)项目时间管理
- java继承中的 equals + hashCode+toString
- php put 参数,php – 如何在Guzzle 5中发送PUT请求的参数?
- 【Python学习】 - 如何在Spyder中弹出plot绘图窗口而不是在Console中绘图
- linux脚本怎么把文件地址变成动态地址,Linux脚本程序自动修改网卡配置文件中的MAC地址...
- uboot环境变量及常用命令
- (原創) 用OOP实作矩阵相乘 (C/C++)
- linux新建java文件夹删除不了怎么办_Linux无法删除文件夹 Device or resource busy
- java kaptcha_kaptcha Java验证码
- kubernetes 查看pod在哪个node节点运行
- python中sorted_关于python中sorted方法的key参数
- HTML5电子书阅读器
- 2019PLAGH-MIT医疗大数据学术交流及Datathon活动正式开始,Workshop环节精彩纷呈
- 微信状态栏隐藏 HTML,微信里几个实用的隐藏小技巧!
- PAT | 算法笔记 | 简单模拟
- gpu运行pycharm
- Isight软件调用matlab
- Git 常用的命令之避免尴尬