当前位置: 首页 > 知识库问答 >
问题:

如何在Android中使用webview显示Html内容页面?

申屠黎昕
2023-03-14

嗨,我创建了一个简单的应用程序来在webview中显示html页面,我使用webview并显示页面加载时间,如下所示。

在此之后,禁用滚动,并使用next和previous按钮来后退和前进Contain。下面是我的代码。

首先,在创建、显示、添加webview并加载html文件。

        mainWebView = (WebView) findViewById(R.id.mainWebView);
    mainWebView.setVerticalScrollBarEnabled(false);
    mainWebView.setHorizontalScrollBarEnabled(false);
    mainWebView.getSettings().setJavaScriptEnabled(true);
    mainWebView.setWebViewClient(new MyWebClient());
    mainWebView.setPictureListener(new MyPictureClass());

    mainWebView.loadUrl("file:///android_asset/chapter-001.html");

之后,使用MyWebclient类获取MainWebView的高度和宽度。

class MyWebClient extends WebViewClient 
    {
        @Override
        public void onPageFinished(WebView view, String url) 
        {
            System.err.println("Page Finish Call");
            lanscapHeight = protraitHeight = findHeight = mainWebView.getHeight();
            System.err.println("Find     Height->"+findHeight);
            System.err.println("Portait  Height->"+protraitHeight);
            System.err.println("Landscap Height->"+lanscapHeight);


        }
    }

之后,使用myPictureClass获取webView包含长度。

class MyPictureClass implements PictureListener
    {
        @Override
        public void onNewPicture(WebView view, Picture picture) 
        {   

                proTraitContain = mainWebView.getContentHeight();

                System.err.println("picture Class Call-->"+proTraitContain);
        }
    }

在此之后。创建按钮next和previous显示下一页和上一页。因此使用SimpleOnGestureListener检测触摸事件。

 btnNext = (Button) findViewById(R.id.btnNext);
        btnNext.setOnTouchListener(this);
        btnPrev = (Button) findViewById(R.id.btnPrev);
        btnPrev.setOnTouchListener(this);

重写touch方法。

 @Override
        public boolean onTouch(View view, MotionEvent event) 
        {
            if (view == btnNext)
            {
                btnClickFlage = true;
                gestureDetector.onTouchEvent(event);
            } else 
            {
                btnClickFlage = false;
                gestureDetector.onTouchEvent(event);
            }
            return false;
        }

implement the SimpleGestureListener class as Below.

class MyGesture extends SimpleOnGestureListener 
    {
        @Override
        public boolean onSingleTapUp(MotionEvent e)
        {

            super.onSingleTapUp(e);

                    System.err.println("Display Total Contain For Protrait -->"+proTraitContain);
                    System.err.println("Before Height-->" + findHeight);

                    if (btnClickFlage) 
                    {



                        if (findHeight > (proTraitContain+protraitHeight)) 
                        {
                            if(restProtraitFlag)
                            {
                                System.err.println("If part In side Flag-->"+findHeight);
                                findHeight=findHeight+protraitHeight;
                                restProtraitFlag=false;
                                //findHeight=findHeight+protraitHeight;
                                mainWebView.scrollTo(0, findHeight);
                                System.err.println("If part In side Flag-->"+findHeight);
                            }else
                            {
                                mainWebView.loadUrl("file:///android_asset/chapter-002.html");
                                restProtraitFlag=true;
                            }
                        } 
                        else
                        {
                            if(protraitFlag)
                            {
                                if(findHeight==protraitHeight)
                                {
                                    findHeight = protraitHeight;
                                }else
                                {
                                    findHeight = findHeight + protraitHeight;   
                                }
                                protraitFlag=false;
                            }else
                            {
                                findHeight = findHeight + protraitHeight;
                            }
                            mainWebView.scrollTo(0, findHeight);
                        }
                    }
                    else
                    {
                        restProtraitFlag=true;
                        if (findHeight<=0)
                        {
                            mainWebView.loadUrl("file:///android_asset/chapter-001.html");
                            System.err.println("Load Previous page");

                        } 
                        else 
                        {
                            findHeight = findHeight - protraitHeight;
                            mainWebView.scrollTo(0, findHeight);
                        }
                    }
                    System.err.println("After Height-->" + findHeight);
                }
            return true;
        }
    }

但是我不能显示当前html页面路径的最后一页。现在该怎么办。任何解决方案请给。这是紧急的。我正确地获取了内容宽度,并使用scrollTo方法来显示,但我不能这样做。

请看我的任何方式。

提前道谢..

共有1个答案

籍永安
2023-03-14

嗨,朋友们,我终于得到了我的问题答案。我使用ScrollTo方法来滚动包含并显示当前页面的下一个包含。但问题是webView根据设备显示所有包含。所以所有时间包含显示的值都高于当前值。所以我使用webView.getScale();方法来显示webView使用的缩放。根据这一点,我使用这个方法来获取webView的当前包含并明智地使用显示页面。它终于为我工作了。

CalenderOuthenticationDe的名称

 类似资料:
  • 问题内容: 如何在同一页面中显示XML和其他类型的数据? 上面的XML应该按格式显示。另外,我想在页面中显示HTML表和其他内容。如何实现呢? 我确实在STRING中通过文件获取了XML。 我不想解析它 我要显示(就是这样) 如果您谈到XSLT(请举个例子) 我正在考虑使用Jquery插件(有任何示例吗?) 问题答案: 一种简单的解决方案是将其嵌入元素内,这样既可以保留格式,也可以保留尖括号。我还

  • 我正在做一个android项目(java),在这个项目中,我想使用webview来显示一个通过使用FileChooser从Phone的存储中选择的图像。在我的java代码中,我有 欢迎任何建议。

  • 问题内容: 我正在尝试从网页中提取一小部分并加载到Webview中,我尝试按照链接中给出的解决方案进行操作,但是它不起作用 使用getElementsByClass(“ darewod”)提取数据 我已经尝试了以下两种方法来加载到webview,但似乎不起作用,它只是在UI上打印HTML 你能告诉我我是否在这里想念任何东西吗? 问题答案: 您正在加载没有适当结构的 html代码(因此,所有定义都将

  • 我试图在JavaFX WebView组件中显示一个网站,但它只呈现一个空白页面。我已按如下方式设置了所有内容: 主控制器。Java语言 MainViewController.java Main.fxml 和 正如你们所见,我还用系统设置了一些代理设置。setProperty()。我也在没有特定代理设置的情况下尝试了它-我认为这不是问题所在。 我不知道我做错了什么。如果我启动应用程序,我可以看到We

  • 我正在用angularJs和highChartsJS做一个统计图。 这里是代码angularJS: Html代码: 测试代码后,我遇到了一个问题: 未捕获错误:Highcharts错误#14:www.Highcharts。com/errors/14 at对象。a、 错误(http://code.highcharts.com/highcharts.js:10:49)在k.setData(http:/