广

android开发

  • IOS开发
  • android开发
  • PHP编程
  • JavaScript
  • ASP.NET
  • ASP编程
  • JSP编程
  • Java编程
  • 易语言
  • Ruby编程
  • Perl编程
  • AJAX
  • 正则表达式
  • C语言
  • 编程开发

    Android中实现Webview顶部带进度条的方法

    2018-04-25 21:46:51 次阅读 稿源:互联网
    广告

    写这篇文章,做份备忘,简单滴展示一个带进度条的Webview示例,进度条位于Webview上面.

    示例图如下:

    主Activity代码:
    代码如下:

    package com.droidyue.demo.webviewprogressbar;
    import android.app.Activity;
    import android.os.Bundle;
    import android.view.Menu;
    import android.view.View;
    import android.view.View.OnClickListener;
    import android.webkit.WebChromeClient;
    import android.webkit.WebView;
    import android.widget.ProgressBar;

    import com.droidyue.demo.webviewprogressbar.R;

    public class MainActivity extends Activity {

      @Override
      protected void onCreate(Bundle savedInstanceState) {
          super.onCreate(savedInstanceState);
          setContentView(R.layout.activity_main);
          final ProgressBar bar = (ProgressBar)findViewById(R.id.myProgressBar);

          final WebView webView = (WebView)findViewById(R.id.myWebView);
          webView.setWebChromeClient(new WebChromeClient() {

              @Override
              public void onProgressChanged(WebView view, int newProgress) {
                  if (newProgress == 100) {
                      bar.setVisibility(View.INVISIBLE);
                  } else {
                      if (View.INVISIBLE == bar.getVisibility()) {
                          bar.setVisibility(View.VISIBLE);
                      }
                      bar.setProgress(newProgress);
                  }
                  super.onProgressChanged(view, newProgress);
              }
             
          });
         
          findViewById(R.id.myButton).setOnClickListener(new OnClickListener() {

              @Override
              public void onClick(View arg0) {
                  webView.reload();
              }
             
          });
          final String url = "http://jb51.net";
          webView.loadUrl(url);
      }
     

      @Override
      public boolean onCreateOptionsMenu(Menu menu) {
          getMenuInflater().inflate(R.menu.main, menu);
          return true;
      }

    }

    布局文件代码

    代码如下:

    <RelativeLayout 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"
        android:paddingBottom="@dimen/activity_vertical_margin"
        android:paddingLeft="@dimen/activity_horizontal_margin"
        android:paddingRight="@dimen/activity_horizontal_margin"
        android:paddingTop="@dimen/activity_vertical_margin"
        tools:context=".MainActivity" >
     
        <Button
            android:id="@+id/myButton"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="Reload"
            />

        <ProgressBar
          style="?android:attr/progressBarStyleHorizontal"
            android:id="@+id/myProgressBar"
            android:layout_below="@id/myButton"
            android:layout_width="match_parent"
            android:layout_height="5px"
            />
      <WebView
          android:id="@+id/myWebView"
          android:layout_below="@id/myProgressBar"
          android:layout_width="match_parent"
          android:layout_height="match_parent"
          />
    </RelativeLayout>

    不要忘记在Mainfest加入使用网络权限哟.

    代码如下:

    <uses-permission android:name="android.permission.INTERNET"/>

    实现很简单,没什么技术含量.备忘而已.

    关于如何自定义进度条请参考:http://www.jb51.net/article/59978.htm

    一起学吧部分文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与一起学吧进行文章共享合作。

    广告
    广告
    广告