Android控件WebView(浏览器)常用功能(图片、缩放)例子介绍

Android系统默认提供WebView控件(view)来在应用中内嵌网页,使其具有浏览器的功能。WebView提供了灵活的配置来让用户自定义相关功能。前面说了关于Android中WebView实现Javascript调用Java类方法,下面在代码中对其他功能做详细描述:

package com.orgcent.webview;

import android.app.Activity;
import android.os.Bundle;
import android.webkit.JsPromptResult;
import android.webkit.JsResult;
import android.webkit.WebChromeClient;
import android.webkit.WebSettings;
import android.webkit.WebView;
import android.webkit.WebViewClient;
import android.webkit.WebSettings.LayoutAlgorithm;

public class AndroidWebViewActivity extends Activity {
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        WebView content_wv = (WebView) findViewById(R.id.content_wv);
        WebSettings ws = content_wv.getSettings();
        ws.setJavaScriptEnabled(true); // 设置支持javascript脚本
        ws.setAllowFileAccess(true); // 允许访问文件
        ws.setBuiltInZoomControls(true); // 设置显示缩放按钮
        ws.setSupportZoom(true); //支持缩放

        /**
         * 用WebView显示图片,可使用这个参数
         * 设置网页布局类型:
         * 1、LayoutAlgorithm.NARROW_COLUMNS : 适应内容大小
         * 2、LayoutAlgorithm.SINGLE_COLUMN:适应屏幕,内容将自动缩放
         */
        ws.setLayoutAlgorithm(LayoutAlgorithm.NARROW_COLUMNS);
        ws.setDefaultTextEncodingName("utf-8"); //设置文本编码
        ws.setAppCacheEnabled(true);
        ws.setCacheMode(WebSettings.LOAD_DEFAULT);//设置缓存模式

        //添加Javascript调用java对象
        content_wv.addJavascriptInterface(this, "java2js");
        content_wv.setWebViewClient(new WebViewClientDemo());
        content_wv.setWebChromeClient(new WebViewChromeClientDemo());
        //设置打开的网页
        content_wv.loadUrl("http://orgcent.com");
        //使用WebView来显示图片
        content_wv.loadData("<img src='http://orgcent.com'/>", "text/html", "utf8");
    }

    private class WebViewClientDemo extends WebViewClient {
        @Override
        public boolean shouldOverrideUrlLoading(WebView view, String url) {
            view.loadUrl(url);// 当打开新链接时,使用当前的 WebView,不会使用系统其他浏览器
            return true;
        }
    }

    private class WebViewChromeClientDemo extends WebChromeClient {
        // 设置网页加载的进度条
        public void onProgressChanged(WebView view, int newProgress) {
        }

        // 获取网页的标题
        public void onReceivedTitle(WebView view, String title) {
        }

        // JavaScript弹出框
        @Override
        public boolean onJsAlert(WebView view, String url, String message,
                JsResult result) {
            return super.onJsAlert(view, url, message, result);
        }

        // JavaScript输入框
        @Override
        public boolean onJsPrompt(WebView view, String url, String message,
                String defaultValue, JsPromptResult result) {
            return super.onJsPrompt(view, url, message, defaultValue, result);
        }

        // JavaScript确认框
        @Override
        public boolean onJsConfirm(WebView view, String url, String message,
                JsResult result) {
            return super.onJsConfirm(view, url, message, result);
        }
    }

}
 转载: http://orgcent.com/android-webview-image-zoom-example/ | 萝卜白菜的博客

相关推荐