Android_WebView_全屏

WebView(网络视图)能加载显示网页,可以将其视为一个浏览器。
它使用了WebKit渲染引擎加载显示网页,实现WebView有以下两种不同的方法:
第一种方法的步骤:
1.在要Activity中实例化WebView组件:WebView webView = new WebView(this);
2.调用WebView的loadUrl()方法,设置WevView要显示的网页:
  互联网用:webView.loadUrl("http://www.google.com");
  本地文件用:webView.loadUrl("file:///android_asset/XX.html");
  本地文件存放在:assets 文件中
3.调用Activity的setContentView( )方法来显示网页视图
4.用WebView点链接看了很多页以后为了让WebView支持回退功能,
需要覆盖覆盖Activity类的onKeyDown()方法,
如果不做任何处理,点击系统回退剪键,整个浏览器会调用finish()而结束自身,而不是回退到上一页面
5.需要在AndroidManifest.xml文件中添加权限,否则会出现Web page not available错误。
  <uses-permission android:name="android.permission.INTERNET" />

第二种方法的步骤:
1、在布局文件中声明WebView
2、在Activity中实例化WebView
3、调用WebView的loadUrl( )方法,设置WevView要显示的网页
4、为了让WebView能够响应超链接功能,调用setWebViewClient( )方法,设置  WebView视图
5、用WebView点链接看了很多页以后为了让WebView支持回退功能,
需要覆盖覆盖Activity类的onKeyDown()方法,如果不做任何处理,
点击系统回退剪键,整个浏览器会调用finish()而结束自身,而不是回退到上一页面
6、需要在AndroidManifest.xml文件中添加权限,否则出现Web page not available错误。
<uses-permission android:name="android.permission.INTERNET"/>

浏览器控件是每个开发环境都具备的,windows的有webBrowser,
android和ios都有webView。只是其引擎不同,相对于微软的webBrowser,
android及ios的webview的引擎都是webkit,对Html5提供支持。
本篇主要介绍android的webview之强大。
A.    webview组件如何使用

1)       添加权限:AndroidManifest.xml中必须使用许可"android.permission.INTERNET",
否则会出Web page not available错误。
2)       在要Activity中生成一个WebView组件:
WebView webView = new WebView(this);
或者可以在activity的layout文件里添加webview控件:
<WebView
android:id="@+id/wv"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:text="@string/hello"
    />
3)       设置WebView基本信息:
          如果访问的页面中有Javascript,则webview必须设置支持Javascript。
          webview.getSettings().setJavaScriptEnabled(true);
          触摸焦点起作用
          requestFocus();
          取消滚动条
          this.setScrollBarStyle(SCROLLBARS_OUTSIDE_OVERLAY);

4)       设置WevView要显示的网页:
          互联网用:webView.loadUrl("http://www.google.com");
          本地文件用:webView.loadUrl("file:///android_asset/XX.html");
          本地文件存放在:assets文件中
5)       如果希望点击链接由自己处理,而不是新开Android的系统browser中响应该链接。
给WebView添加一个事件监听对象(WebViewClient)并重写其中的一些方法:
 shouldOverrideUrlLoading:对网页中超链接按钮的响应。
 当按下某个连接时WebViewClient会调用这个方法,
 并传递参数:按下的url。比如当webview内嵌网页的某个数字被点击时,
 它会自动认为这是一个电话请求,会传递url:tel:123,
 如果你不希望如此可通过重写shouldOverrideUrlLoading函数解决:

        另外还有其他一些可重写的方法
1,接收到Http请求的事件
onReceivedHttpAuthRequest(WebView view, HttpAuthHandler handler,
String host, String realm)
2,打开链接前的事件
public boolean shouldOverrideUrlLoading(WebView view, String url) {
 view.loadUrl(url); return true; }
这个函数我们可以做很多操作,比如我们读取到某些特殊的URL,于是就可以不打开地址,取消这个操作,
进行预先定义的其他操作,这对一个程序是非常必要的。

3,载入页面完成的事件
public void onPageFinished(WebView view, String url){ }
同样道理,我们知道一个页面载入完成,于是我们可以关闭loading条,切换程序动作。

4,载入页面开始的事件
public void onPageStarted(WebView view, String url, Bitmap favicon) { }
这个事件就是开始载入页面调用的,通常我们可以在这设定一个loading的页面,告诉用户程序在等待网络响应。

通过这几个事件,我们可以很轻松的控制程序操作,一边用着浏览器显示内容,
一边监控着用户操作实现我们需要的各种显示方式,同时可以防止用户产生误操作。

6)       如果用webview点链接看了很多页以后,如果不做任何处理,点击系统“Back”键,
整个浏览器会调用finish()而结束自身,如果希望浏览的网页回退而不是退出浏览器,
需要在当前Activity中处理并消费掉该Back事件。
       覆盖Activity类的onKeyDown(int keyCoder,KeyEvent event)方法。    

B.    Webview与js交互
Webview与js的双向交互才是android的webview强大所在
首先,webview可以定义一个在其内嵌页面中可以触发的事件

全屏代码
1、在AndroidManifest.xml的配置文件里面的<activity
里面加入:
android:theme="@android:style/Theme.NoTitleBar.Fullscreen"//去掉状态栏及标题栏
2、在setContentView(R.layout.**)前面加入:
this.requestWindowFeature(Window.FEATURE_NO_TITLE);//去掉标题栏
this.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
WindowManager.LayoutParams.FLAG_FULLSCREEN);//去掉信息栏       

//======================================================================
package com.example.webview;

import android.os.Bundle;
import android.app.Activity;
import android.view.KeyEvent;
import android.view.Menu;
import android.view.Window;
import android.view.WindowManager;
import android.webkit.WebView;

public class MainActivity extends Activity {
	private WebView webView;
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		// 全屏代码
		requestWindowFeature(Window.FEATURE_NO_TITLE);
	    getWindow().setFlags(WindowManager.LayoutParams. FLAG_FULLSCREEN ,
	    WindowManager.LayoutParams. FLAG_FULLSCREEN);
		// setContentView(R.layout.activity_main);
		// 实例化一个webView
		webView = new WebView(this);
		// 设置WebView属性,能够执行Javascript脚本
		webView.getSettings().setJavaScriptEnabled(true);
		// 全国重点城市空气质量排行榜,
		String url;
		//url = "http://tianqi.2345.com/air-rank.htm";
		url="file:///android_asset/beauty4/beauty4.html";
		// 加载目标url
		webView.loadUrl(url);
		// 设置webView为主视图
		setContentView(webView);
	}
	@Override
	public boolean onKeyDown(int keyCode, KeyEvent event) {
		// 如果按下的是后退键,并且webview可以后退,则webview后退
		if (keyCode==KeyEvent.KEYCODE_BACK && webView.canGoBack()) {
			webView.goBack();
			return true;
		}
		//return super.onKeyDown(keyCode, event);
		// 退出程序
		return true;
	}
	@Override
	public boolean onCreateOptionsMenu(Menu menu) {
		getMenuInflater().inflate(R.menu.main, menu);
		return true;
	}

}

Android_WebView_全屏,布布扣,bubuko.com

时间: 2024-10-12 12:02:55

Android_WebView_全屏的相关文章

Xcode 设置图片全屏显示

- (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view, typically from a nib.// UIImage *image = [UIImage imageNamed:@"initial_page_bg.jpg" ]; UIImageView *imageView = [[UIImageView alloc]initWithImage:image

html5 video全屏实现方式

首先来说,这个标题具有误导性,但这样设置改标题也是主要因为video使用的比较多 在html5中,全屏方法可以适用于很多html 元素,不仅仅是video <!doctype  html> <html> <head> <meta charset="utf-8" />     <title>全屏问题</title>     <meta http-equiv="content-type" co

解决微信video全屏的问题,不在本页面播放

在微信浏览器中使用video标签,点击播放会跳出本页面,自动进行全屏播放,原因是自动跳转到手机微信内置的浏览器中去播放去了!!! 在video中加上连个属性就好了,反正最近的一个项目,我是这样做的就好了, <video id="videoID"webkit-playsinline="true" x-webkit-airplay="true"  playsinline="true"x5-video-player-type=

Atom快速进入全屏后隐藏/恢复显示菜单栏

今天用ATOM进入全屏模式,然后偶尔琢磨这个Atom 1.3.2版本的软件的时候, 在菜单栏里面的View里面, 有一个Toggle Menu Bar的选项,好奇的我点击了下,瞬间,菜单栏就不见了.. 经过一番琢磨,终于想到了方法,其实就是通过键盘的快捷键啦. 注:虽然我用的是atom 1.3.2版本的软件,但是原理是一样的.工具/原料 Atom软件,键盘,鼠标,电脑 方法/步骤 首先,当然是打开ATOM软件啦,进入全屏怎么进?按下键盘上面的快捷键F11是最好的. Atom快速进入全屏后隐藏/恢

一种让超大banner图片不拉伸、全屏宽、居中显示的方法

现在很多网站的Banner图片都是全屏宽度的,这样的网站看起来显得很大气.这种Banner一般都是做一张很大的图片,然后在不同分辨率下都是显示图片的中间部分.实现方法如下: <html> <head> <title>Title</title> <style> .bannerbox { width:100%; position:relative; overflow:hidden; height:500px; } .banner { width:19

android activity ImageView全屏设置

开始接触android也有1月有余了,看了一小部分的教学视频+刚哥的疯狂讲义.总是看着视频做一些Demo,有些木讷.今天尝试终于进入项目中,在项目中巩固知识点. 功能1 project启动 显示欢迎页面而后跳转 主页面: 问题点 1 实现Imange 全屏显示: 解决方案: 1.设置image scaleType 属性: android:scaleType="fitXY" 2.设置 activity theme 属性: <activity android:name=".

个人感觉设置全屏目前看到最好的方法

1 //在onCreate方法里调动 2 private void test1(){//隐藏标题栏 3 ActionBar actionbar=getActionBar(); 4 if(actionbar!=null){ 5 actionbar.hide(); 6 } 7 } 8 private void test2(){//全屏 9 this.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,WindowManage

全屏游戏中自动切出到桌面的问题解决(二)

关于全屏游戏,类似英雄联盟等,游戏中,自动切到桌面的问题,之前发布过一个解决过的问题.今天又碰到一个类似的问题,当然还是用前端进程工具查找一下什么进程引起的游戏切出.经过观察为update.exe这个进程导致.那么下面就需要查找这个文件的来源了.通过查找路径,发现此文件随机性特别强,任意变换目录,而且通过软件也看不出其父进程.如图:    那么只有借助其他软件了.打开 ProcessExplorer,观察所有进程,发现有UPDATE,但是也无法观察到父进程.那么结束掉这个进程,并且使用顺网小哥的

全屏游戏中自动切出到桌面的问题解决

近期遇到一个客户全屏游戏中,自动切出游戏到桌面的问题,于是到现场解决.     打开游戏<英雄联盟>测试,并开启前端进程监测软件监测.一段时间过后,游戏切出,发现一个名称为"DeskTopHelper.exe"的进程.如图: 好吧,那么看一看这个进程是哪个软件带的吧.打开PROCESS EXPLORER,查看一下,如图: 通过进程关系,并进一步查找文件目录得知,这个进程是"95网吧大师的进程".那么得知是哪个软件导致的,解决办法就不用再说了吧. 附上工具