android webview 简单应用

一直没有用过webView 在网上找了一个小例子,主要实现以下功能:

1、当webview加载网页的时候在标题栏上显示加载进度

2、隐藏webkit浏览器的地址栏

3、设置程序的标题为网页的标题

4、创建菜单

代码:

<span style="font-size:18px;"><span style="font-size:18px;">package com.mywebview;

import android.os.Bundle;
import android.app.Activity;
import android.content.Intent;
import android.view.Menu;
import android.view.MenuItem;
import android.view.MenuItem.OnMenuItemClickListener;
import android.webkit.WebChromeClient;
import android.webkit.WebView;
import android.webkit.WebViewClient;

public class MainActivity extends Activity
{
    private final int MENU_ITEM1 = 1; 
    private final int MENU_ITEM2 = 2;
    
    private final int MENU_GROUP = 0;
    
    private WebView myWebView;
    private final static String url= "http://m.baidu.com/";
	@Override
	protected void onCreate(Bundle savedInstanceState)
	{
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		myWebView = (WebView) this.findViewById(R.id.mywebview);
		myWebView.getSettings().setJavaScriptEnabled(true);
		
        //当webview加载网页的时候在标题栏上显示加载进度 
		myWebView.setWebChromeClient(new WebChromeClient(){
           @Override
           public void onProgressChanged(WebView view, int progress) {
             //Activity和Webview根据加载程度决定进度条的进度大小   
               //当加载到100%的时候进度条自动消失   
               MainActivity.this.setProgress(progress * 100);  
           }
       });
		myWebView.loadUrl(url);
	
        //隐藏webkit浏览器的地址栏
		myWebView.setWebViewClient(new WebViewClient(){
           @Override
           public boolean shouldOverrideUrlLoading(WebView view, String url) {
               view.loadUrl(url);
               return true;
           }
           
           //设置程序的标题为网页的标题
            @Override
           public void onPageFinished(WebView view, String url) {
               if (myWebView.getTitle() != null) {
                   MainActivity.this.setTitle(myWebView.getTitle());
               }
           }
       });
	}

	@Override
	public boolean onCreateOptionsMenu(Menu menu)
	{
        //刷新
        MenuItem aboutMenu=menu.add(MENU_GROUP, MENU_ITEM1, 1 ,"刷新");
       aboutMenu.setOnMenuItemClickListener(new OnMenuItemClickListener(){
           public boolean onMenuItemClick(MenuItem item) {
               MainActivity.this.myWebView.loadUrl(url);
               return true;
           }
       });
       //退出
        MenuItem exitMenu=menu.add(MENU_GROUP, MENU_ITEM2, 2, "退出");
       exitMenu.setOnMenuItemClickListener(new OnMenuItemClickListener(){
           public boolean onMenuItemClick(MenuItem item) {
               //返回主屏幕
               Intent home = new Intent(Intent.ACTION_MAIN);  
               //在A窗口打开B窗口时在Intent中直接加入标志 Intent.FLAG_ACTIVITY_CLEAR_TOP,这样开启B时将会清除该进程空间的所有Activity。
               home.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);  
               home.addCategory(Intent.CATEGORY_HOME);  
               startActivity(home);  
               finish();
               return true;
           }
       });
       return true; // 记得返回true,否则无效

	}

}
</span></span>
<span style="font-size:18px;"><span style="font-size:18px;">
设置没有标题栏TitleBar</span></span>
<span style="font-size:18px;"><span style="font-size:18px;">
1、在values目录下建立一个style.xml,内容如下
<?xml version="1.0" encoding="utf-8"?>
<resources>
    <style name="NewTheme" parent="@android:style/Theme.NoTitleBar">
    </style>
</resources>
        

2、同时要使得你的网页有上网功能和隐藏TitleBar,则需要在AndroidManifesti.xml中加入
<activity android:name=".MainActivity"
    android:label="@string/app_name"
    android:theme="@android:style/Theme.NoTitleBar">

添加访问INTERNET权限
<uses-permission android:name="android.permission.INTERNET" /></span></span>


具体代码见:

http://download.csdn.net/detail/q610098308/8886225

posted @ 2015-07-10 10:18  恋恋西风  阅读(143)  评论(0编辑  收藏  举报