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/ | 萝卜白菜的博客
分享到:
相关推荐
在Android应用开发中,WebView控件是一个至关重要的组件,它允许开发者在应用程序内部展示网页内容,无需离开应用即可实现浏览器的功能。本示例主要讲解如何在Android项目中使用WebView控件来加载并显示网页。 首先...
`setBuiltInZoomControls(false)`和`setDisplayZoomControls(false)`用于隐藏缩放控件,`setOverScrollMode(WebView.OVER_SCROLL_NEVER)`则可以隐藏滚动条。`loadUrl`方法加载指定的网页URL。 这个简单的例子展示了...
在这个例子中,我们启用了JavaScript支持,设置了缩放功能,并且当点击链接时,网页将在WebView内部打开,而不是跳转到外部浏览器。此外,我们还覆盖了`onBackPressed()`方法,使得用户可以按返回键回退到WebView的...
在这个例子中,我们指定了视频的宽高、控制条,并提供了多个视频源以适应不同的浏览器。 最后,别忘了在AndroidManifest.xml中添加网络权限,以允许WebView访问网络资源: ```xml <uses-permission android:name=...
对于Android原生浏览器来说,它通常会将网页内容缩放以适应屏幕,而在WebView中,网页则按照原始尺寸显示。Android默认视作mdpi设备,hdpi设备相当于mdpi的1.5倍,而ldpi则是mdpi的0.75倍。为了优化在不同分辨率设备...
android控件的抖动效果 很漂亮的ListView android 图像处理滤镜 照亮边缘特效 无闪烁启动画面 Android实现《天女散花》效果--(带源码) 天天动听 半透明Menu效果 Android 小項目之---Iphone拖动图片特效 (附源码) ...
这个"Android与JS交互 DEMO"是一个典型的例子,展示了如何利用WebView组件来实现Android应用与JavaScript之间的通信。在这个DEMO中,我们将深入探讨以下几个关键知识点: 1. **WebView组件**:WebView是Android SDK...
总的来说,WebViewDemo项目是学习和实践如何在Android应用中有效利用WebView的一个很好的例子,涵盖了从基础功能到高级特性的各种用法。通过这个项目,开发者可以更好地理解和掌握WebView在实际应用中的应用技巧,...
在Android开发中,`WebView`是一个非常重要的组件,它允许我们在应用程序中嵌入网页内容,实现类似浏览器的功能。本实验室(Lab15_WebView)主要关注如何使用Java语言有效地利用`WebView`进行应用开发。 首先,`...
WebView是一个内置的浏览器控件,它可以加载并显示HTML、CSS和JavaScript等Web内容,从而让开发者能够在原生Android应用中嵌入网页体验。在这个名为"androidWebApp"的项目中,我们看到它是一个基于WebView构建的...