Android:启动画面和webview

时间:2012-06-05 13:37:58

标签: android multithreading webview screen splash

我现在已经尝试了几天来获得一个解决方案,以便在加载webview时显示启动画面。

我环顾四周,有几种方法: - 制作活动只是为了显示启动画面,等待几秒钟然后开始webview活动 - >这不是解决方案,因为在关闭启动画面后再次完成所有加载

  • 第二种方法是这样的:

       myWebView = (WebView) findViewById(R.id.webview);
    myWebView.getSettings().setJavaScriptEnabled(true);
    myWebView.setScrollBarStyle(WebView.SCROLLBARS_OUTSIDE_OVERLAY); 
    myWebView.setWebViewClient(new WebViewClient() {
       public void onPageFinished(WebView view, String url) {
           findViewById(R.id.webview).setVisibility(View.VISIBLE);
    
           //hide loading image
           findViewById(R.id.imageView1).setVisibility(View.GONE);
           //show webview
          }
        });
    

    这样可行,但在转换到webview时再次出现白屏。而且你也无法控制启动画面的时间。

  • 我想做的第三个解决方案,但是(即使经过几天的搜索和尝试)也不知道如何 - >在一个线程中显示启动画面,在另一个线程中为webview准备一切,然后只需切换到webview。

我的问题是,有人能告诉我从第三个解决方案开始的地方吗?

  • 我想试试像this这样的东西!但我无法弄清楚如何将webview传递给另一个活动,从我读到的内容来看,这甚至都不是一个好主意。

任何建议,想法,指针?有没有办法显示启动画面,在另一个线程中准备(膨胀)webview,然后在加载url(以及其他所有内容)完成后切换到它?

感谢!!!

1 个答案:

答案 0 :(得分:1)

尝试在Webview上使用WebChromeClient。在WebChromeClient中,您有一个方法onProgressChange。

当onProgressChange告诉您页面已完成加载时,您可以消失启动画面。

编辑: 例如,您可以使用HttpGet调用您的Url线程并检索响应。获得响应后,可以使用loadData(...)方法加载webview。