Android——WebView组件的使用详解

通过本专题的讲解可以了解到WebView组件的详细使用:

网络内容
1、LoadUrl直接显示网页内容(单独显示网络图片)
2、LoadData显示中文网页内容(含空格的处理)
APK包内文件
1、LoadUrl显示APK中Html和图片文件
2、LoadData(loadDataWithBaseURL)显示APK中图片和文字混合的Html内容

res/layout/main.xml
Xml代码   收藏代码
  1. <?xml version="1.0" encoding="utf-8"?>     
  2. <LINEARLAYOUT android:layout_height="fill_parent" android:layout_width="fill_parent" android:orientation="vertical" xmlns:android="http://schemas.android.com/apk/res/android">     
  3. <WEBVIEW android:layout_height="fill_parent" android:layout_width="fill_parent" android:id="@+id/webview" />     
  4. </LINEARLAYOUT>     

 

Example_webview.java

 

Java代码   收藏代码
  1. package cn.coolworks;  
  2.   
  3. import java.net.URLEncoder;  
  4.   
  5. import android.app.Activity;  
  6. import android.os.Bundle;  
  7. import android.webkit.WebView;  
  8.   
  9. public class Example_webview extends Activity {  
  10.     WebView webView;  
  11.     final String mimeType = "text/html";  
  12.     final String encoding = "utf-8";  
  13.   
  14.     /** Called when the activity is first created. */  
  15.     @Override  
  16.     public void onCreate(Bundle savedInstanceState) {  
  17.         super.onCreate(savedInstanceState);  
  18.         setContentView(R.layout.main);  
  19.         webView = (WebView) findViewById(R.id.webview);  
  20.         webView.getSettings().setJavaScriptEnabled(true);  
  21.         //  
  22.         //webHtml();  
  23.         //  
  24.          //webImage();  
  25.         //  
  26.         //localHtmlZh();  
  27.         //  
  28.         //localHtmlBlankSpace();  
  29.         //  
  30.         //localHtml();  
  31.         //  
  32.         // localImage();  
  33.         //  
  34.          localHtmlImage();  
  35.     }  
  36.   
  37.     /** 
  38.      * 直接网页显示 
  39.      */  
  40.     private void webHtml() {  
  41.         try {  
  42.             webView.loadUrl("http://www.google.com");  
  43.         } catch (Exception ex) {  
  44.             ex.printStackTrace();  
  45.         }  
  46.     }  
  47.   
  48.     /** 
  49.      * 直接网络图片显示 
  50.      */  
  51.     private void webImage() {  
  52.         try {  
  53.             webView  
  54.                     .loadUrl("http://www.gstatic.com/codesite/ph/images/code_small.png");  
  55.         } catch (Exception ex) {  
  56.             ex.printStackTrace();  
  57.         }  
  58.     }  
  59.   
  60.     /** 
  61.      * 中文显示 
  62.      */  
  63.     private void localHtmlZh() {  
  64.         try {  
  65.             String data = "<!--l encoding="utf-8" version="1.-->测试含有  中文的Html数据";  
  66.             // utf-8编码处理(在SDK1.5模拟器和真实设备上都将出现乱码,SDK1.6上能正常显示)  
  67.             //webView.loadData(data, mimeType, encoding);  
  68.             // 对数据进行编码处理(SDK1.5版本)  
  69.              webView.loadData(URLEncoder.encode(data, encoding), mimeType,  
  70.              encoding);  
  71.         } catch (Exception ex) {  
  72.             ex.printStackTrace();  
  73.         }  
  74.     }  
  75.   
  76.     /** 
  77.      * 中文显示(空格的处理) 
  78.      */  
  79.     private void localHtmlBlankSpace() {  
  80.         try {  
  81.             String data = "      测试含有空格的Html数据    ";  
  82.             // 不对空格做处理  
  83.              webView.loadData(URLEncoder.encode(data, encoding), mimeType,  
  84.              encoding);  
  85.             //webView.loadData(data, mimeType, encoding);  
  86.             // 对空格做处理(在SDK1.5版本中)  
  87.              webView.loadData(URLEncoder.encode(data, encoding).replaceAll(  
  88.              "\\+"" "), mimeType, encoding);  
  89.         } catch (Exception ex) {  
  90.             ex.printStackTrace();  
  91.         }  
  92.     }  
  93.   
  94.     /** 
  95.      * 显示本地图片文件 
  96.      */  
  97.     private void localImage() {  
  98.         try {  
  99.             // 本地文件处理(如果文件名中有空格需要用+来替代)  
  100.             webView.loadUrl("file:///android_asset/icon.png");  
  101.         } catch (Exception ex) {  
  102.             ex.printStackTrace();  
  103.         }  
  104.     }  
  105.   
  106.     /** 
  107.      * 显示本地网页文件 
  108.      */  
  109.     private void localHtml() {  
  110.         try {  
  111.             // 本地文件处理(如果文件名中有空格需要用+来替代)  
  112.             webView.loadUrl("file:///android_asset/test.html");  
  113.         } catch (Exception ex) {  
  114.             ex.printStackTrace();  
  115.         }  
  116.     }  
  117.   
  118.     /** 
  119.      * 显示本地图片和文字混合的Html内容 
  120.      */  
  121.     private void localHtmlImage() {  
  122.         try {  
  123.             String data = "测试本地图片和文字混合显示,这是<IMG src='\"file:///android_asset/icon.png\"/'>APK里的图片";  
  124.             // SDK1.5本地文件处理(不能显示图片)  
  125.             // webView.loadData(URLEncoder.encode(data, encoding), mimeType,  
  126.             // encoding);  
  127.             // SDK1.6及以后版本  
  128.             // webView.loadData(data, mimeType, encoding);  
  129.             // 本地文件处理(能显示图片)  
  130.             webView.loadDataWithBaseURL("about:blank", data, mimeType,  
  131.                     encoding, "");  
  132.         } catch (Exception ex) {  
  133.             ex.printStackTrace();  
  134.         }  
  135.     }  
  136. }  

 

webView判断是否加载完成的2种办法

mWebView.setWebViewClient(new WebViewClient()
{   
                        @Override
                        public void onPageFinished(WebView view, String url) 
                        {

                                //开始
                                super.onPageFinished(view, url);
                        }
                        @Override
                        public void onPageStarted(WebView view, String url, Bitmap favicon) 
                        {

                                //结束
                                super.onPageStarted(view, url, favicon);

                        }
});

 

 public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        getWindow().requestFeature(Window.FEATURE_PROGRESS);
        setContentView(R.layout.main);
        
        WebView browser = null;
        browser = (WebView)findViewById(R.id.webview);
        browser.setWebChromeClient(new WebChromeClient()
        {
         public void onProgressChanged(WebView view,int newProgress)
         {
          test.this.setProgress(newProgress*100);
         }
        });
        //browser.getSettings().set
        browser.loadUrl("http://hiphotos.baidu.com/baidu/pic/item/39dbb6fdeb5efd4a09244df0.jpg");
    }

 




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值