Android开发实现浏览器全屏显示功能
发布时间 - 2026-01-11 03:28:38 点击率:次本文实例讲述了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相关内容感兴趣的读者可查看本站专题:《Android开发入门与进阶教程》、《Android视图View技巧总结》、《Android编程之activity操作技巧总结》、《Android文件操作技巧汇总》、《Android资源操作技巧汇总》及《Android控件用法总结》
希望本文所述对大家Android程序设计有所帮助。
# Android
# 浏览器
# 全屏显示
# Android如何让WebView中的HTML5页面实现视频全屏播放
# Android Studio 全屏沉浸式透明状态栏效果的实现
# android实现点击图片全屏展示效果
# Android使用WebView实现全屏切换播放网页视频功能
# Android Toast实现全屏显示
# android 全屏去掉底部虚拟导航栏的方法
# Android实现全屏截图或长截屏功能
# android 中ProgressDialog实现全屏效果的示例
# Android给任何view添加全屏倾斜水印
# Android开发之全屏与非全屏的切换设置方法小结
# Android如何判断页面是否全屏
# 全屏
# 标题栏
# 操作技巧
# 现时
# 的是
# 进阶
# 这是
# 这时候
# 就会
# 是个
# 相关内容
# 是有
# 在那里
# 只需
# 要在
# 感兴趣
# 要做
# 才有
# 给大家
# 不属于
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
Android滚轮选择时间控件使用详解
Linux系统命令中screen命令详解
Laravel如何清理系统缓存命令_Laravel清除路由配置及视图缓存的方法【总结】
高防服务器租用指南:配置选择与快速部署攻略
php静态变量怎么调试_php静态变量作用域调试技巧【解答】
在线制作视频的网站有哪些,电脑如何制作视频短片?
深圳网站制作的公司有哪些,dido官方网站?
如何注册花生壳免费域名并搭建个人网站?
Laravel怎么使用Markdown渲染文档_Laravel将Markdown内容转HTML页面展示【实战】
企业在线网站设计制作流程,想建设一个属于自己的企业网站,该如何去做?
Windows Hello人脸识别突然无法使用
移动端脚本框架Hammer.js
如何在云指建站中生成FTP站点?
如何用搬瓦工VPS快速搭建个人网站?
简单实现Android文件上传
javascript日期怎么处理_如何格式化输出
PHP 500报错的快速解决方法
微博html5版本怎么弄发超话_超话进入入口及发帖格式要求【教程】
ai格式如何转html_将AI设计稿转换为HTML页面流程【页面】
安克发布新款氮化镓充电宝:体积缩小 30%,支持 200W 输出
魔毅自助建站系统:模板定制与SEO优化一键生成指南
laravel怎么在请求结束后执行任务(Terminable Middleware)_laravel Terminable Middleware请求结束任务执行方法
Laravel如何发送邮件_Laravel Mailables构建与发送邮件的简明教程
如何在建站之星绑定自定义域名?
Laravel怎么集成Log日志记录_Laravel单文件与每日日志配置及自定义通道【详解】
Laravel中间件起什么作用_Laravel Middleware请求生命周期与自定义详解
Win11关机界面怎么改_Win11自定义关机画面设置【工具】
Laravel如何实现图片防盗链功能_Laravel中间件验证Referer来源请求【方案】
html文件怎么打开证书错误_https协议的html打开提示不安全【指南】
网站制作大概要多少钱一个,做一个平台网站大概多少钱?
制作网站软件推荐手机版,如何制作属于自己的手机网站app应用?
Linux网络带宽限制_tc配置实践解析【教程】
如何为不同团队 ID 动态生成多个“认领值班”按钮
Midjourney怎样加参数调细节_Midjourney参数调整技巧【指南】
Python制作简易注册登录系统
Laravel如何处理跨站请求伪造(CSRF)保护_Laravel表单安全机制与令牌校验
Laravel控制器是什么_Laravel MVC架构中Controller的作用与实践
Laravel如何创建和注册中间件_Laravel中间件编写与应用流程
清除minerd进程的简单方法
Laravel项目怎么部署到Linux_Laravel Nginx配置详解
如何在云虚拟主机上快速搭建个人网站?
如何用免费手机建站系统零基础打造专业网站?
Laravel如何实现多级无限分类_Laravel递归模型关联与树状数据输出【方法】
CSS3怎么给轮播图加过渡动画_transition加transform实现【技巧】
Gemini怎么用新功能实时问答_Gemini实时问答使用【步骤】
Laravel API资源类怎么用_Laravel API Resource数据转换
Laravel怎么写单元测试_PHPUnit在Laravel项目中的基础测试入门
如何在IIS7中新建站点?详细步骤解析
如何在腾讯云服务器快速搭建个人网站?
如何在万网利用已有域名快速建站?

