Android WebView顶部进度条

Android中WebView加载网页时,在顶部加上进度条 webView在androidapp开发中应用越来越多,我写了一个加载网页时加上进度条的简单代码,和大家分享 立即下载

项目中用到WebView加上进度条放在顶部,让用户知道加载进度情况,可以提高用户体验:
效果:


加载显示进度条.jpg


下面我们来实现这个效果:

自定义ProgressWebView 继承WebView

  1. 创建WebChromeClient 继承WebChromeClie
    public class WebChromeClient extends android.webkit.WebChromeClient {
         @Override
         public void onProgressChanged(WebView view, int newProgress) {
             if (newProgress == 100) {
                 mProgressBar.setVisibility(GONE);
             } else {
                 if (mProgressBar.getVisibility() == GONE)
                     mProgressBar.setVisibility(VISIBLE);
                 mProgressBar.setProgress(newProgress);
             }
             super.onProgressChanged(view, newProgress);
         }
     }
  2. 重新onScrollChanged
    @Override
    protected void onScrollChanged(int l, int t, int oldl, int oldt) {
        LayoutParams lp = (LayoutParams) mProgressBar.getLayoutParams();
        lp.x = l;
        lp.y = t;
        mProgressBar.setLayoutParams(lp);
        super.onScrollChanged(l, t, oldl, oldt);
    }
  3. 构造方法

    public ProgressWebView(Context context, AttributeSet attrs) {
        super(context, attrs);
        mProgressBar = new ProgressBar(context, null,
                android.R.attr.progressBarStyleHorizontal);
        LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(
                LinearLayout.LayoutParams.MATCH_PARENT, 8);
        mProgressBar.setLayoutParams(layoutParams);
    
        Drawable drawable = context.getResources().getDrawable(
                R.drawable.web_progress_bar_states);
        mProgressBar.setProgressDrawable(drawable);
        addView(mProgressBar);
        setWebChromeClient(new WebChromeClient());
    }

完整ProgressWebView类代码 :

public class ProgressWebView extends WebView {
    private ProgressBar mProgressBar;

    public ProgressWebView(Context context, AttributeSet attrs) {
        super(context, attrs);
        mProgressBar = new ProgressBar(context, null,
                android.R.attr.progressBarStyleHorizontal);
        LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(
                LinearLayout.LayoutParams.MATCH_PARENT, 8);
        mProgressBar.setLayoutParams(layoutParams);

        Drawable drawable = context.getResources().getDrawable(
                R.drawable.web_progress_bar_states);
        mProgressBar.setProgressDrawable(drawable);
        addView(mProgressBar);
        setWebChromeClient(new WebChromeClient());
    }

    public class WebChromeClient extends android.webkit.WebChromeClient {
        @Override
        public void onProgressChanged(WebView view, int newProgress) {
            if (newProgress == 100) {
                mProgressBar.setVisibility(GONE);
            } else {
                if (mProgressBar.getVisibility() == GONE)
                    mProgressBar.setVisibility(VISIBLE);
                mProgressBar.setProgress(newProgress);
            }
            super.onProgressChanged(view, newProgress);
        }
    }

    @Override
    protected void onScrollChanged(int l, int t, int oldl, int oldt) {
        LayoutParams lp = (LayoutParams) mProgressBar.getLayoutParams();
        lp.x = l;
        lp.y = t;
        mProgressBar.setLayoutParams(lp);
        super.onScrollChanged(l, t, oldl, oldt);
    }
}

如何使用

  1. xml布局引用

    <com.aikaifa.webview.ProgressWebView
         android:id="@+id/baseweb_webview"
         android:layout_width="match_parent"
         android:layout_height="match_parent" />

    其中com.aikaifa.webview 为包名,你可以改成你自己的包名

  2. 找到ProgressWebView控件

    mWebView = (ProgressWebView) findViewById(R.id.baseweb_webview);
        mWebView.getSettings().setJavaScriptEnabled(true);
                mWebView.setWebViewClient(new WebViewClient(){
            @Override
            public boolean shouldOverrideUrlLoading(WebView view, String url) {
                return false;
            }
        });
        String url ="http://mp.weixin.qq.com/s?__biz=MzAwODQ5MTA2NQ==&mid=402389923&idx=1&sn=3c89c329e7bf83ce8ff2364726ebd6a7#rd";
        mWebView.loadUrl(url);

注意一点,不要漏了在AndroidManifest.xml 加上网络权限

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

最终效果:


加载中.jpg


这样WebView顶部进度条就实现完毕了。

webView添加加载进度条 (eclipse) WebView的使用,加载时添加进度条类型微信开发网页; 立即下载

相关推荐

安卓浏览器WebViewJSHTML5相关-Android下读取网页显示进度条.rar

Android下读取网页,显示进度条.rar,太多无法一一验证是否可用,程序如果跑不起来需要自调,部分代码功能进行参考学习。

android webview加载进度条,android在WebView中显示ProgressBar的两种方法

转自http://blog.youkuaiyun.com/liuzhidong123/article/details/64503341、在标题栏显示进度条 package firsrdroid.tutorial.mywebview;import android.app.Activity;import android.os.Bundle;import android.view.Window;import and...

weixin_35935514的博客 792

Changer: Feature Interaction Is What You Need forChange Detection

还有“交换“交互是一种完全不需要参数和计算的操作,它是通过交换空间或通道维度上的双时态特征映射来实现的,交换的特征在经过后续的卷积或令牌混合时进行混合。方法二:提出了两种简单的交互策略,AD和特征“交换”,大量的实验表明,它们可以极大地提高MetaChanger的性能,特别是特征“交换”,即使嵌入到复杂的网络中或应用于具有挑战性的数据集。在这里,我们用虚线勾勒本文的重点。这是变化检测任务的基本问题,双时相图像提供了同一地区在不同时间点的图像数据,通过对比这两个时间点的图像,我们可以检测出该地区的变化。

yokon的博客 1619

Android中的观察者DataSetObservable和DataSetObserver

找到一套好的视频资料,紧跟大牛梳理好的知识框架进行学习。多练。(视频优势是互动感强,容易集中注意力)你不需要是天才,也不需要具备强悍的天赋,只要做到这两点,短期内成功的概率是非常高的。对于很多初中级Android工程师而言,想要提升技能,往往是自己摸索成长,不成体系的学习效果低效漫长且无助。以上就是总结的关于在面试的一些总结,希望对大家能有些帮助,除了这些面试中需要注意的问题,当然最重要的就是刷题了,这里放上我之前整理的一份超全的面试专题PDF还有。

2401_84520182的博客 1232

蓝桥杯单片机开发实战:Keil环境配置与IAP15F2K61S2头文件设置详解

本文详细讲解了为蓝桥杯单片机竞赛配置Keil开发环境的关键步骤,重点解析了IAP15F2K61S2专用头文件的获取与设置方法。通过使用STC-ISP工具添加芯片型号和头文件,确保编译器能正确识别寄存器,是成功进行单片机编程和竞赛备赛的基础。文中还提供了从软件安装、工程创建到常见问题排查的完整实战指南。

soda5的博客 886

经典损失函数——均方误差(MSE)和交叉熵误差(CEE)的python实现

损失函数(loss function)用来表示当前的神经网络对训练数据不拟合的程度。这个损失函数有很多,但是一般使用均方误差和交叉熵误差等。 1.均方误差(mean squared error) 先来看一下表达式: 用于将的求导结果变成,是神经网络的输出,是训练数据的标签值,k表示数据的维度。 用python实现: def MS...

Answer3664的博客 1万+

WebProgress: 微信风格Android WebView进度条指南

WebProgress: 微信风格Android WebView进度条指南 项目介绍 :rocket: WebProgress 是一个专为Android平台设计的WebView进度条控件,它模拟了微信网页加载时的进度条效果,提供平滑的进度过渡体验。通过这个库,开发者能够轻松地为他们的应用程序中的WebView添加一个美观且直观的加载指示器,提升用户体验。 特性: 平滑的进度变化动画。 支持设置...

gitblog_01193的博客 749

别再为环保数采仪通讯发愁!手把手教你用MCGS触摸屏+4G模块发送HJ212报文

本文详细介绍了如何使用MCGS触摸屏配合4G模块高效发送HJ212标准报文,解决工业环保监测中的数据采集与传输难题。从硬件连接到软件配置,再到报文组装与发送策略,提供全流程实用指南,特别针对4G网络环境下的特殊设置给出优化建议,帮助工程师提升数据传输稳定性与效率。

weixin_30847865的博客 388

android webview加载进度条,Android Webview添加网页加载进度条实例详解

最近在android项目中使用webview嵌套了一个抽奖活动网页,活动上线,运行良好(改了N次需求和突发bug),还好这种模式的活动,只需要修改网页,不需要重新打包发布市场,这也是这种模式开发的优势之一。后来据产品哥反馈说加载网页无进度提示,好吧,这个当时真没考虑这么多,这个要加加..想当然以为轻松搞定之....其实还是比轻松要复杂点...1、首先自定义一个WebView控件/*** 带进度条的...

weixin_39641334的博客 1233

携程登录风控逆向踩坑实录:从滑块到点选验证码,我是如何一步步拿到phantom-token的

本文详细解析了携程登录风控系统的逆向过程,从滑块验证码到点选验证码的破解,再到设备指纹生成和加密协议逆向,最终成功获取phantom-token。文章提供了关键代码示例和实战技巧,帮助开发者理解并绕过复杂的风控机制。

weixin_28049429的博客 968

SST专题(2-4)MMC-SST 输入级的环流分析

本文分析了模块化多电平换流器(iMMC-SST)的输入级等效电路、子模块电容电压波动特性及环流抑制机理。研究表明:1)子模块电容电压波动包含基频和二倍频分量,与传统换流器相比波动幅值更大;2)环流主要由子模块电容电压波动在桥臂电感上激发的偶次谐波电流构成,呈频率越高幅值越小的特性;3)可通过增大桥臂电感或采用调制策略叠加抑制电压分量来有效控制环流。研究结果为MMC系统设计提供了理论依据。

嵌入式老牛的博客 585

Android开发教程带进度条的WebView

每个app都有加载网页的需求,但加载网页往往比较慢,需要进度条提示用户

聪哥的专栏 443

【C2000系列DSP的Bootloader详解】如何打包源文件为库文件且加密仅授权使用,一步步教你如何实现

如果想要在 TI 的 CCS 开发环境中为 C2000 系列 MCU 生成 lib 库文件,并对这些库文件进行加密保护,确保只有授权方(持有密钥)才能调用和使用,以此保护源代码的知识产权。

昔时扬尘处 176

android wenview加载进度条,Android WebView顶部进度条

项目中用到WebView加上进度条放在顶部,让用户知道加载进度情况,可以提高用户体验:效果:加载显示进度条.jpg下面我们来实现这个效果:自定义ProgressWebView 继承WebView创建WebChromeClient 继承WebChromeCliepublic class WebChromeClient extends android.webkit.WebChromeClient {@...

weixin_39758229的博客 301

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

android webview置顶,Android WebView实现顶部进度条

项目中用到WebView加上进度条放在顶部,让用户知道加载进度情况,可以提高用户体验:效果:布局:android:layout_width="match_parent"android:layout_height="match_parent"android:orientation="vertical">android:id="@+id/webView"android:layout_width=...

weixin_35037351的博客 351

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

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

原文地址:http://www.jb51.net/article/59979.htm 这篇文章主要介绍了Android中实现Webview顶部带进度条的方法,当前很流行的一个效果,就是打开网页时会在顶部显示一个打开进度条,需要的朋友可以参考下 写这篇文章,做份备忘,简单滴展示一个带进度条的Webview示例,进度条位于Webview上面. 示例图如下: 主Activity代

asd8705的专栏 686

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

android webview自带进度条,Android中实现Webview顶部带进度条的方法

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 andr...

weixin_33971463的博客 189

Android 顶部带进度条的WebView

描述现在h5越来越火,很多app中都会有用到h5,比如新闻类的app,这时就需要用到WebView控件,看微信订阅号打开详情时,都会在顶部有一个进度条,觉得比较好,在项目中用到WebView的时候也把进度条放在顶部。实现WebView的使用很简单, 基本上写好一次, 其他的地方只需要换一个请求地址就行了。 本例中的带顶部精度条的WebView其实也很简单, 就是在加载开始的时候把顶部的Progres

Ai 1905

【Android】中WebView加载资源顶部进度条

xml文件 <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical"> &lt

weixin_43983286的博客 259

android webview添加进度条,Android WebView顶部进度条

继承WebView public class WebChromeClient extends android.webkit.WebChromeClient { @Override public void onProgressChanged(WebView view, int newProgress) { if (newProgress ==...

weixin_39915694的博客 232
上一篇: Android Bitmap知识梳理学习
下一篇: Android实现APP在线下载更新
ChatHello
博客等级 码龄11年 43粉丝 58原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值