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

写这篇文章,做份备忘,简单滴展示一个带进度条的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

时间: 2024-08-31 22:35:09

Android中实现Webview顶部带进度条的方法_Android的相关文章

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

写这篇文章,做份备忘,简单滴展示一个带进度条的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.vi

Android实现为Notification加上一个进度条的方法_Android

本文实例讲述了Android实现为Notification加上一个进度条的方法.分享给大家供大家参考,具体如下: package com.notification; import android.app.Activity; import android.app.Notification; import android.app.NotificationManager; import android.app.PendingIntent; import android.content.Intent;

Android实现为Notification加上一个进度条的方法

本文实例讲述了Android实现为Notification加上一个进度条的方法.分享给大家供大家参考,具体如下: package com.notification; import android.app.Activity; import android.app.Notification; import android.app.NotificationManager; import android.app.PendingIntent; import android.content.Intent;

Android中AlertDilog显示简单和复杂列表的方法_Android

本文实例讲述了Android中AlertDialog显示简单和复杂列表的方法.分享给大家供大家参考,具体如下: AlertDialog 显示简单列表 setItems import Android.app.Activity; import android.app.AlertDialog; import android.content.DialogInterface; import android.os.Bundle; import android.os.Handler; import andro

Android中捕捉menu按键点击事件的方法_Android

本文实例讲述了Android中捕捉menu按键点击事件的方法.分享给大家供大家参考.具体如下: @Override public boolean onCreateOptionsMenu(Menu menu) { /* * add()方法的四个参数,依次是: 1.组别,如果不分组的话就写Menu.NONE, * 2.Id,这个很重要,Android根据这个Id来确定不同的菜单 3.顺序,那个菜单现在在前面由这个参数的大小决定 * 4.文本,菜单的显示文本 */ menu.add(Menu.NONE

Android中使用TextView实现图文混排的方法_Android

向TextView或EditText中添加图像比直接添加文本复杂一点点,需要用到<img>标签. <img>只有一个src属性,该属性原则上应该指向一个图像地址或可以找到某个图像资源的唯一标识.但要注意的是,系统并不会直接根据src属性所指的值自动获取和显示图像,这一切都需要我们去做.说白了,src属性指的是什么只有开发者自己知道.开发者需要告诉系统src属性到底指的是什么,然后系统才会知道怎么做. 解析src属性值需要ImageGetter对象的getDrawable方法来完成.

Android中EditText 设置 imeOptions 无效问题的解决方法_Android

有时候我们需要在EditText  输出完之后 需要在键盘出现 右下角变成"Go"或"前往 搜索时:通常我们需要设置Android:imeOptions属性.Android:imeOptions的值有actionGo. actionSend .actionSearch.actionDone等 但是今天我发现设置了无效  那是因为我设置了 android:maxLines="1" 解决方法 就是去掉 android:maxLines="1"

Android中invalidate()和postInvalidate() 的区别及使用方法_Android

Android中实现view的更新有两组方法,一组是invalidate,另一组是postInvalidate,其中前者是在UI线程自身中使用,而后者在非UI线程中使用.       Android提供了Invalidate方法实现界面刷新,但是Invalidate不能直接在线程中调用,因为他是违背了单线程模型:Android UI操作并不是线程安全的,并且这些操作必须在UI线程中调用. invalidate()是用来刷新View的,必须是在UI线程中进行工作.比如在修改某个view的显示时,调

Android中如何制作电池电量进度条:上下滚动图片的进度条(battery)

最近,制作一个app,需要模拟一个电池电量的进度条,根据电量多少来设置百分比,进度条不断上下滚动,就像平时手机充电一样的电池电量进度条.我就自定义view实现了电量进度条.修改图片就可以达到自己想要的效果 一.自定义View,Battery.java,循环刷新界面,两张图片上下滚动,达到不断向右移动的效果.挺有意思的 package com.example.battery; import android.content.Context; import android.content.res.Re