Android中WebView加载网页设置进度条

发布时间:2019-08-08 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了Android中WebView加载网页设置进度条脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。

我们平时在进行安卓开发使用到webview加载网页时,我们不能准确了解网页的加载进度,因此为了提高用户体验,我们在webview中加入进度条显示加载进度。

程序预览界面:

Android中WebView加载网页设置进度条

一、主界面XMl布局文件

 <LinearLayout xMLns:andROId="http://schemas.android.COM/apk/res/android"    xmlns:tools="http://schemas.android.com/tools"    android:layout_width="match_parent"    android:layout_height="match_parent"    tools:context=".MainActivITy"    android:orientation="vertical"    >    <RelativeLayout    android:layout_width="match_parent"    android:layout_height="40dp"    android:background="#1B9A16"            />            <PRogressBar      android:id="@+id/progressBar1"      style="?android:attr/progressBarStyleHorizontal"      android:layout_width="match_parent"      android:layout_height="3dip"      android:progreSSDrawable="@drawable/pg"      android:visibility="gone"          />      <WebView      android:id="@+id/webview1"      android:layout_below="@id/progressBar1"      android:layout_width="match_parent"      android:layout_height="match_parent" />    </LinearLayout> 

二、ProgressBar样式布局文件(pg.xml放在drawable下面)

 <layer-list xmlns:android="http://schemas.android.com/apk/res/android" >      <item android:id="@android:id/background">      <Shape>        <corners android:radius="2dp" />        <gradient          android:angle="270"          android:centerColor="#E3E3E3"          android:endColor="#E6E6E6"          android:startColor="#C8C8C8" />      </shaPE>    </item>    <item android:id="@android:id/progress">      <clip>        <shape>          <corners android:radius="2dp" />          <gradient            android:centerColor="#4AEA2F"            android:endColor="#31CE15"            android:startColor="#5FEC46" />                  </shape>      </clip>    </item>    </layer-list> 

三、逻辑代码

 package com.example.webview;    import android.os.Bundle;  import android.app.Activity;  import android.transition.Visibility;  import android.view.KeyEvent;  import android.view.Menu;  import android.view.View;  import android.view.Window;  import android.webkit.WebChromeClient;  import android.webkit.WebSettings;  import android.webkit.WebView;  import android.webkit.WebViewClient;  import android.widget.ProgressBar;    public class MainActivity extends Activity {        private WebView webView;    private ProgressBar pg1;    @override    protected void onCreate(Bundle savedInstancestate) {      super.onCreate(savedInstanceState);      requestWindowFeature(Window.FEATURE_NO_TITLE);      setContentView(R.layout.activity_main);      init();      webView.loadUrl("http://www.baidu.com");    }      private void init() {      // TODO 自动生成的方法存根      webView=(WebView) findViewById(R.id.webview1);      pg1=(ProgressBar) findViewById(R.id.progressBar1);            webView.setWebViewClient(new WebViewClient(){        //覆写shouldOverrideUrlLoading实现内部显示网页        @Override        public boolean shouldOverrideUrlLoading(WebView view, String url) {          // TODO 自动生成的方法存根          view.loadUrl(url);          return true;        }      });      WebSettings seting=webView.getSettings();      seting.setJavaScriptEnabled(true);//设置webview支持javascript脚本      webView.setWebChromeClient(new WebChromeClient(){        @Override        public void onProgressChanged(WebView view, int newProgress) {          // TODO 自动生成的方法存根                    if(newProgress==100){            pg1.setVisibility(View.GONE);//加载完网页进度条消失          }          else{            pg1.setVisibility(View.VISIBLE);//开始加载网页时显示进度条            pg1.setProgress(newProgress);//设置进度值          }                  }      });          }          //设置返回键动作(止按返回键直接退出程序)    @Override    public boolean onKeyDown(int keyCode, KeyEvent event) {      // TODO 自动生成的方法存根      if(keyCode==KeyEvent.KEYCODE_BACK) {        if(webView.canGoBack()) {//当webview不是处于第一页面时,返回上一个页面          webView.goBack();          return true;        }        else {//当webview处于第一页面时,直接退出程序          System.exit(0);        }                    }      return super.onKeyDown(keyCode, event);    }        } 

整体流程就这样。

android教程
脚本网站
android studio

脚本宝典总结

以上是脚本宝典为你收集整理的Android中WebView加载网页设置进度条全部内容,希望文章能够帮你解决Android中WebView加载网页设置进度条所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。