android中自定义WebView显示网页或本地html文件
来源:互联网 发布:淘宝app怎么换皮肤 编辑:程序博客网 时间:2024/05/29 12:30
由于最近项目部分需求要访问网页查阅信息,如:学历查询,学位查询,英语四六级查询等。
在这里总结下完成的方式,难度也不算大。自定义带进度条的WebView控件:
package app.ui.widget;import android.content.Context;import android.util.AttributeSet;import android.webkit.WebView;import android.widget.ProgressBar;/** * 自定义WebView带进度条 * @author gaochun * */@SuppressWarnings("deprecation")public class ProgressWebView extends WebView { private ProgressBar progressbar; /** 进度条 */ public ProgressWebView(Context context, AttributeSet attrs) { super(context, attrs); // 初始化进度条 progressbar = new ProgressBar(context, null, android.R.attr.progressBarStyleHorizontal); // 设置进度条风格 progressbar.setLayoutParams(new LayoutParams(LayoutParams.MATCH_PARENT, 5, 0, 0)); addView(progressbar); setWebChromeClient(new WebChromeClient()); } public class WebChromeClient extends android.webkit.WebChromeClient { @Override public void onProgressChanged(WebView view, int newProgress) { if (newProgress == 100) { progressbar.setVisibility(GONE); // 加载完成隐藏进度条 } else { if (progressbar.getVisibility() == GONE) progressbar.setVisibility(VISIBLE); progressbar.setProgress(newProgress); } super.onProgressChanged(view, newProgress); } } @Override protected void onScrollChanged(int l, int t, int oldl, int oldt) { LayoutParams lp = (LayoutParams) progressbar.getLayoutParams(); lp.x = l; lp.y = t; progressbar.setLayoutParams(lp); super.onScrollChanged(l, t, oldl, oldt); }}
<?xml version="1.0" encoding="utf-8"?><FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:padding="@dimen/content_padding" > <app.ui.widget.ProgressWebView android:id="@+id/webview" android:layout_width="match_parent" android:layout_height="match_parent" /> <TextView android:id="@+id/tv_error" android:layout_width="match_parent" android:layout_height="match_parent" android:gravity="center|center_vertical" android:text="查询失败" android:visibility="gone" /></FrameLayout>
在Activity中使用:
/******************************************************************************* * * Copyright (c) Weaver Info Tech Co. Ltd * * SelectActivity * * app.ui.activity.service.SelectActivity.java * TODO: File description or class description. * * @author: Administrator * @since: 2014-5-16 * @version: 1.0.0 * * @changeLogs: * 1.0.0: First created this class. * ******************************************************************************/package app.ui.activity.service;import mobi.kuaidian.qunakao.R;import android.content.Intent;import android.os.Bundle;import android.view.KeyEvent;import android.webkit.WebSettings;import android.webkit.WebView;import android.webkit.WebViewClient;import app.ui.widget.ProgressWebView;/** * @author Administrator * */public class ResultActivity extends Activity{public static final String SELECT_XUELI = "http://www.chsi.com.cn/xlcx/lscx.jsp"; //学历查询地址 private ProgressWebView mWebView; private WebSettings mWebSettings; /* (non-Javadoc) * @see app.ui.TitleActivity#onCreate(android.os.Bundle) */ @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setUpViews(); } private void setUpViews() { setContentView(R.layout.activity_result); showBackwardView(R.string.button_backward, true); mWebView = (ProgressWebView)findViewById(R.id.webview);mWebView.loadUrl(BaseActivity.SELECT_XUELI); mWebSettings = mWebView.getSettings(); mWebSettings.setJavaScriptEnabled(true); //允许加载javascript mWebSettings.setSupportZoom(true); //允许缩放 mWebSettings.setBuiltInZoomControls(true); //原网页基础上缩放 mWebSettings.setUseWideViewPort(true); //任意比例缩放/***************************************************************** * 在点击请求的是链接时才会调用,重写此方法返回true表明点击网页里 * 面的链接还是在当前的WebView里跳转,不会跳到浏览器上运行。 *****************************************************************/ mWebView.setWebViewClient(new WebViewClient(){ @Override public boolean shouldOverrideUrlLoading(WebView view, String url) { view.loadUrl(url); return super.shouldOverrideUrlLoading(view, url); } }); } /*********************************************************** * 监听返回键 * 注:这里的返回键是指在加载的网页中进入了另一个连接,点击返回 ***********************************************************/ public boolean onKeyDown(int keyCode, KeyEvent event) { if ((keyCode == KeyEvent.KEYCODE_BACK) && mWebView.canGoBack()) { mWebView.goBack(); return true; } return super.onKeyDown(keyCode, event); }}
AndroidManifest.xml添加权限:
<uses-permission android:name="android.permission.INTERNET" />
36 0
- android中自定义WebView显示网页或本地html文件
- android中自定义WebView显示网页或本地html文件
- Android控件:WebVIew(二)显示网页或本地html文件
- android WebView中loadUrl方法显示本地html中的图文
- android WebView中loadUrl方法显示本地html中的图文
- webview显示html网页文件的问题
- android使用webView打开本地html文件
- Android WebView加载本地Html文件
- iOS中webview加载本地html文件
- Android在网页下(WebView中运用HTML)点击按钮打开本地手机应用程序
- Android WebView 远程网页 加载本地资源js/html/css
- android中WebView加载网页居中显示
- android中WebView加载网页居中显示
- Android中使用WebView显示网页
- android中WebView加载网页居中显示
- webview展示本地的HTML文件来显示Markdown
- webView各种显示html、网页
- Android:WebView显示网页
- ibatis(学习1)--sqlMapConfig sqlMap的配置,和sqlMap中的各种语法
- ArrayList的toArray
- Spark SQL查询优化代码解析
- 获得当前系统时间
- update 改为 merge
- android中自定义WebView显示网页或本地html文件
- [心记] 2014-07-11 : 开博首贴.
- Oracle删除表空间的同时删除数据文件
- Oracle的优化器的RBO和CBO方式
- Android 应用层监听外置SD卡插拔
- ext4 学习笔记一
- 新浪实时股票数据接口http://hq.sinajs.cn/list=code
- jquery 控制html页面表格当中奇偶行颜色不同 鼠标悬停变色
- vim乱码的解决