Android WebView加载网页进度监听
来源:互联网 发布:cad看图软件 mac 免费 编辑:程序博客网 时间:2024/05/23 23:46
首先是布局R.layout.activity_main
<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context="com.example.sportsii.webviewdemo.MainActivity"> <LinearLayout android:id="@+id/webView_layout" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical"> <ProgressBar android:id="@+id/progressBar" style="?android:attr/progressBarStyleHorizontal" android:layout_width="match_parent" android:layout_height="3dp" android:progressDrawable="@drawable/progressbar_carch" /> <WebView android:id="@+id/webView" android:layout_width="match_parent" android:layout_height="match_parent"></WebView> </LinearLayout> <TextView android:id="@+id/error_tv" android:layout_width="match_parent" android:layout_height="match_parent" android:gravity="center" android:text="网络连接错误" android:textSize="30dp" android:visibility="gone" /></RelativeLayout>
然后是 ProgressBar样式
<?xml version="1.0" encoding="utf-8"?><layer-list xmlns:android="http://schemas.android.com/apk/res/android" > <item android:id="@android:id/background"> <shape> <corners android:radius="2.0dip" /> <gradient android:angle="270.0" android:centerColor="#FFFFFF" android:centerY="2.0" android:endColor="#FFFFFF" android:startColor="#FFFFFF" /> </shape> </item> <item android:id="@android:id/progress"> <clip> <shape> <corners android:radius="2.0dip" /> <gradient android:angle="270.0" android:centerColor="#8bc34a" android:centerY="2.0" android:endColor="#8bc34a" android:startColor="#8bc34a" /> </shape> </clip> </item></layer-list>最后是逻辑代码(如果加载失败会显示加载失败的界面)
package com.example.sportsii.webviewdemo;import android.graphics.Bitmap;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.view.KeyEvent;import android.view.View;import android.webkit.WebChromeClient;import android.webkit.WebSettings;import android.webkit.WebView;import android.webkit.WebViewClient;import android.widget.LinearLayout;import android.widget.ProgressBar;import android.widget.TextView;public class MainActivity extends AppCompatActivity { private LinearLayout webLLayout; private TextView errorTv; private WebView webView; private ProgressBar progressBar; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); webView = (WebView) findViewById(R.id.webView); progressBar = (ProgressBar) findViewById(R.id.progressBar); webLLayout = (LinearLayout) findViewById(R.id.webView_layout); errorTv = (TextView) findViewById(R.id.error_tv); initViews(); } private void initViews() {//支持javascript webView.getSettings().setJavaScriptEnabled(true); webView.getSettings().setJavaScriptCanOpenWindowsAutomatically(true);// 支持通过JS打开新窗口 // 设置可以支持缩放 webView.getSettings().setSupportZoom(true); // 设置出现缩放工具 webView.getSettings().setBuiltInZoomControls(true); //扩大比例的缩放 webView.getSettings().setUseWideViewPort(true); webView.getSettings().setAllowFileAccess(true); webView.getSettings().setLoadsImagesAutomatically(true);// 支持自动加载图片 //自适应屏幕 webView.getSettings().setLayoutAlgorithm(WebSettings.LayoutAlgorithm.SINGLE_COLUMN); webView.getSettings().setLoadWithOverviewMode(true); webView.setLayerType(View.LAYER_TYPE_SOFTWARE, null); webView.setWebChromeClient(new WebChromeClient() { @Override public void onProgressChanged(WebView view, int newProgress) { super.onProgressChanged(view, newProgress); progressBar.setProgress(newProgress); } }); webView.setWebViewClient(new WebViewClient() { @Override public void onPageStarted(WebView view, String url, Bitmap favicon) { super.onPageStarted(view, url, favicon); progressBar.setVisibility(View.VISIBLE); } @Override public void onPageFinished(WebView view, String url) { super.onPageFinished(view, url); progressBar.setVisibility(View.GONE); } //请求失败时显示失败的界面 @Override public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) { super.onReceivedError(view, errorCode, description, failingUrl); webLLayout.setVisibility(View.GONE); errorTv.setVisibility(View.VISIBLE); } }); webView.loadUrl(" http://blog.csdn.net/mchenys/article/details/49930739"); } // 改写手机物理按键--返回的逻辑 @Override public boolean onKeyDown(int keyCode, KeyEvent event) { if (keyCode == KeyEvent.KEYCODE_BACK) { if (webView.canGoBack()) { webView.goBack();// 返回上一页面 return true; } else { finish(); // System.exit(0);// 退出程序 } } return super.onKeyDown(keyCode, event); }}
阅读全文
0 0
- Android WebView加载网页进度监听
- android webview 实现网页加载进度
- Android--当webview加载网页的时候在标题栏上显示加载进度
- Android--当webview加载网页的时候在标题栏上显示加载进度
- Android--当webview加载网页的时候在标题栏上显示加载进度
- Android--当webview加载网页的时候在标题栏上显示加载进度
- Android WebView 加载网页
- android webview加载网页
- Android加载网页WebView
- Android-WebView加载网页
- android 加载webview网页
- Android加载webView加载进度实现
- WebView监听网页加载成功与失败
- WebView加载网页-进度显示-网络上传图片并压缩
- android WebView加载网页视频
- android使用webview加载网页
- android使用webview加载网页
- android:使用webview加载网页
- 进程上下文和中断上下文详解
- NLP计算文档相似度之TF-IDF
- Matlab datenum函数
- 采集存储
- 安卓各种调试问题合辑[不定时更新]
- Android WebView加载网页进度监听
- Error:Execution failed for task ':app:mergeDebugResources'解决办法
- 使用kermit串口工具时出现 /dev/ttyS0 is not a terminal device 错误
- <基础原理进阶>机器学习算法python实现【1】--分类简谈&KNN算法
- AIX安装配置参考
- SAP ABAP Programming Tutorials
- maven生命周期管理
- variables_to_restore函数的用法
- Python:关于cookies