android浏览器自动全屏,Android开发实现浏览器全屏显示功能「建议收藏」

大家好,我是知秋君,一个会写博客吟诗的知秋码农。今天说一说android浏览器自动全屏,Android开发实现浏览器全屏显示功能「建议收藏」,希望能够帮助大家进步!!! 本文实例讲述了android开发实现浏览器全屏显示功能。分享给大家供大家参考,具体如下: 业务需求:浏览器设置中支持全屏显示的功能。 分析:只需要在设置界面上增加是否全屏的checkbox , 然后

大家好,我是知秋君,一个会写博客吟诗的知秋码农。今天说一说android浏览器自动全屏,Android开发实现浏览器全屏显示功能「建议收藏」,希望能够帮助大家进步!!!

本文实例讲述了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程序设计有所帮助。

知秋君
上一篇 2024-07-03 15:31
下一篇 2024-07-03 15:32

相关推荐