本文实例讲述了android开发实现浏览器全屏显示功能。分享给大家供大家参考,具体如下:

业务需求:浏览器设置中支持全屏显示的功能。

分析:只需要在设置界面上增加是否全屏的checkbox , 然后 browseractivity 中读取这个值, 来设置窗口的 style.

修改:

1.  修改项目下的 res/xml 文件夹下的 browser_preferences.xml 文件, 添加

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开发实现浏览器全屏显示功能相关推荐

  1. Win10系统下禁止ie浏览器自动跳转到Microsoft Edge浏览器

    Win10系统下禁止ie浏览器自动跳转到Microsoft Edge浏览器 说明 步骤 1)打开Microsoft Edge浏览器 2)点击"设置",如下图 3)点击"默 ...

  2. android安装自动打开网页,Android调用系统自带浏览器打开网页的实现方法

    Android调用系统自带浏览器打开网页的实现方法 在Android中可以调用自带的浏览器,或者指定一个浏览器来打开一个链接.只需要传入一个uri,可以是链接地址. 启动android默认浏览器 在A ...

  3. Android Studio自动排版格式化(android排版和xml排版)

    Android Studio自动排版格式化 今天自己想让Android Studio软件自动格式化排版,结果搜了一下,都说是Ctrl + Alt + L 结果不行 后面自已经过网上一些提示和自己探索终 ...

  4. android系统自动构建,[系统集成] Android 自动构建系统

    一.简介 android app 自动构建服务器用于自动下载app代码.自动打包.发布,要建立这样的服务器,关键要解决以下几个问题: 1. android app 自动化打包 android 的打包一 ...

  5. android 图片自动裁剪图片,Android图片选择到裁剪之步步深坑 – 简书

    我的问题已经解决,查阅了几十篇相关文章,换了数种解决方案,最终解决,虽然不是按照本文来的,但关闭窗口的时候发现本文算是系统,特此转载. 最近在自己的项目里实现了一个头像选择的功能,就是先从相册里选取一 ...

  6. HTML运行到浏览器自动刷新,web前端开发之热加载—liveReload(浏览器自动刷新)...

    今天主要写一下,如何配置,保存前端代码后,浏览器自动刷新的功能,双屏操作,真的会方便很多,对于前端开发来说,一边写样式,一边看效果,爽翻~ 图片发自简书App 一.开发环境 1.电脑系统:mac 2. ...

  7. android程序自动卸载软件,Android应用静默安装和卸载

    App的静默安装和卸载 Android系统本身提供了安装卸载功能,但是api接口是@hide的,不是公开的接口,所以在应用级别 是无法实现静默安装和卸载的,要实现静默安装和卸载需要是系统应用,要有系统 ...

  8. android编程 自动裁剪图片,Android编程实现调用相册、相机及拍照后直接裁剪的方法...

    本文实例讲述了Android编程实现调用相册.相机及拍照后直接裁剪的方法.分享给大家供大家参考,具体如下: package com.cvte.health.phone; import java.io. ...

  9. android设置自动旋转屏幕,android怎样实现关闭系统自动旋转屏幕时能够自动横竖屏...

    android 系统关闭系统自动旋转屏幕情况下利用设备感应器(方向传感器)实现横竖屏切换 2.SensorManager sm=(SensorManager)getSystemService(SENS ...

  10. android设置自动开关机,Android开发之设置开机自动启动的几种方法

    Android开发之设置开机自动启动的几种方法 方法一: android:name=".AutoStartReceiver"为处理开机启动后所做操作的AutoStartReceiv ...

最新文章

  1. mysql修改校对集_MySQL 教程之校对集问题
  2. 谈谈JQuery的Deferred对象
  3. 布丁消除html,布丁压缩怎么彻底卸载
  4. IDEA2021创建Java Web项目
  5. JavaWeb黑马旅游网-学习笔记06【旅游线路分页展示分页展示】
  6. Android 升级到android studio 2.2项目死活run不起来
  7. P1368-工艺【最小表示法】
  8. 笔记 — 动画效果(Css3)
  9. JEECG Online Coding 开发操作图解
  10. Visual studio docker build no such file or directory
  11. 安卓学习笔记32:实现补间动画
  12. 怎么在电脑上进行屏幕录像?电脑录屏的方法
  13. 用Python+Appium自动写网课考试
  14. 基于STM32单片机的FM调频TEA5767功放收音机方案原理图设计
  15. Matlab帮助文档设置
  16. 教你怎样混社会(转)
  17. ASCII表完整版(包含16进制对应表)——看看16进制与10进制的转化
  18. python 携程_python-携程爬虫
  19. c#-winform重绘Tabcontrol控件,标签带Logo图标
  20. 使用 UI Flow 从O365管理界面下载报告时遇到的问题和解决办法

热门文章

  1. 数学科普书籍介绍(一)
  2. Java 实训1:编写一个窗体程序显示日历表。
  3. 大型POS机收银系统源码MVC架构
  4. 用苹果手机做c语言作业,c for ios好用吗,就是苹果手机上的一个C语言编程APP
  5. 黑苹果uhd630黑屏_UHD630核显驱动方法及驱动后闪屏严重问题解决记录
  6. java crc8_CRC8校验的java实现 | 学步园
  7. gitlab怎么将建好的项目移到某个组下
  8. 通信技术以及5G和AI保障电网安全与网络安全
  9. protocal buffer repeate 关键字
  10. 程序员是否要考PMP认证?看这篇就够了