android的WebView进度条

android的WebView进度条

import android.app.Activity;
import android.graphics.Color;
import android.os.Bundle;
import android.os.Handler;
import android.view.Menu;
import android.view.View;
import android.webkit.WebChromeClient;
import android.webkit.WebView;
import android.webkit.WebViewClient;
import android.widget.LinearLayout;
import android.widget.ProgressBar;
import android.widget.TextView;
 
public class MainActivity extends Activity {
        Handler handler;
        WebView wv;
        TextView textView;
        ProgressBar progressBar;
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
//        requestWindowFeature(Window.FEATURE_NO_TITLE);
//                getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
//                                WindowManager.LayoutParams.FLAG_FULLSCREEN);
                LinearLayout rootViewLayout = new LinearLayout(this);
                rootViewLayout.setOrientation(LinearLayout.VERTICAL);
                textView = new TextView(this);
                textView.setTextColor(Color.RED);
                //生成水平进度条
                progressBar = new ProgressBar(this,null,android.R.attr.progressBarStyleHorizontal);
                wv = new WebView(this);
                rootViewLayout.addView(textView);
                rootViewLayout.addView(progressBar);
                rootViewLayout.addView(wv);
        setContentView(rootViewLayout);
         wv.getSettings().setAllowFileAccess(true); 
         wv.getSettings().setJavaScriptEnabled(true);
         //这里吐槽一下这J8网站 写你妹的排队,排你大爷
        wv.loadUrl("http://www.12306.cn");
        wv.setWebViewClient(new WebViewClient(){
                        @Override
                        public void onPageFinished(WebView view, String url) {
                                // TODO Auto-generated method stub
                                super.onPageFinished(view, url);
                                //页面下载完毕,却不代表页面渲染完毕显示出来
                                //WebChromeClient中progress==100时也是一样
                                if (wv.getContentHeight() != 0) {
                                        //这个时候网页才显示
                                }
                        }
                        @Override
                        public boolean shouldOverrideUrlLoading(WebView view, String url) {
                                // TODO Auto-generated method stub
                                //自身加载新链接,不做外部跳转
                                view.loadUrl(url);
                                return true;
                        }
                         
        });
         
        wv.setWebChromeClient(new WebChromeClient(){
                @Override
                public void onProgressChanged(WebView view, int newProgress) {
                        // TODO Auto-generated method stub
                        super.onProgressChanged(view, newProgress);
                        //这里将textView换成你的progress来设置进度
//                        if (newProgress == 0) {
//                                        textView.setVisibility(View.VISIBLE);
//                                        progressBar.setVisibility(View.VISIBLE);
//                                }
                        textView.setText(newProgress+"");
                        textView.postInvalidate();
                        progressBar.setProgress(newProgress);
                        progressBar.postInvalidate();
//                        if (newProgress == 100) {
//                                        textView.setVisibility(View.GONE);
//                                        progressBar.setVisibility(View.GONE);
//                                }
                }
        });
    }
 
    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        getMenuInflater().inflate(R.menu.activity_main, menu);
        return true;
    }
}

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/110181.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • QT5.12安装图文教程与安装成功后环境配置详细教程「建议收藏」

    QT5.12安装图文教程与安装成功后环境配置详细教程「建议收藏」Qt是一个完整的开发框架,其工具旨在简化桌面、嵌入式和移动平台的应用程序和用户界面的创建。非常多的公司喜欢用它来做界面。有很多的小伙伴们想要学习这门语言,但是目前网上的教程比较少,这里为大家介绍一下QT5.12安装的详细教程,希望对初学者有一定的帮助。QT5.10.0安装包下载QT版本官方下载地址:http://download.qt.io/archive/qt/进入官网,按如下图示进…

    2022年5月17日
    38
  • ASCII码16进制对照表

    ASCII码16进制对照表ASCII 码对照表 ASCII AmericanStan 美国信息互换标准代码 ASC 是基于拉丁字母的一套电脑编码系统 它主要用于显示现代英语和其他西欧语言 它是现今最通用的单字节编码系统 并等同于国际标准 ISO IEC646 ASCII 第一次以规范标准的型态发表是在 1967 年 最后一次更新则是在 1986 年 至今为止共定义了 128 个字符 其中 33 个字符无法显示 这是以现今操作系统为依归 但在 DOS 模式下可显示出一些诸如笑

    2025年9月17日
    2
  • Linux Vim编辑器的基本使用

    Linux Vim编辑器的基本使用vi、vim编辑器:如何安装vim编辑器?vim编辑器的四种模式及其关系是什么?vim编辑器如何使用?vim如何进行复制、粘贴、剪切、恢复、撤销、删除等操作?vim四种模式如何切换?vim怎么添加多行注释?代码着色、异常退出如何解决、vim各模式的作用是什么…

    2022年7月26日
    7
  • CSS 鼠标样式「建议收藏」

    CSS 鼠标样式「建议收藏」巧合要用到鼠标样式效果,就顺便整理了下十五种CSS鼠标样式,小例子供大家使用啊。CSS鼠标样式语法如下:任意标签中插入style=”cursor:*” 例子:文本或其它页面元素 文本或其它页面元素 注意把*换成如下15个效果的一种:下面是对这15种效果的解释。移动鼠标到解释上面,看看你的鼠标起了什么变化吧!hand是手型   例子:CSS鼠标手型效果 CSS

    2022年5月6日
    38
  • linux清除文件内容 >,Linux清除文件内容的几种方法[通俗易懂]

    linux清除文件内容 >,Linux清除文件内容的几种方法[通俗易懂]#清空或删除大文件内容的五种方法:#法一:通过重定向到Null来清空文件内容$>test.sh#法二:使用‘true’命令重定向来清空文件$true>test.sh#可通过下列命令来查看文件容量是否为0$du-htest.sh0test.sh#法三:使用cat/cp/dd实用工具及/dev/null设备来清空文件$cat/dev/null…

    2022年7月26日
    6
  • Django的HttpRequest[通俗易懂]

    Django的HttpRequest[通俗易懂]HttpReqeust对象服务器接收到http协议的请求后,会根据报文创建HttpRequest对象,这个对象不需要我们创建,直接使用服务器构造好的对象就可以。视图的第一个参数必须是HttpRequest对象,在django.http模块中定义了HttpRequest对象的API。属性下面除非特别说明,属性都是只读的。path:一个字符串,表示请求的页面的完整路径,不包含域名和参数部分。…

    2022年6月26日
    26

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号