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中新建站点?详细步骤解析  如何在腾讯云服务器快速搭建个人网站?  如何在万网利用已有域名快速建站?