【问题标题】:Android:Display a temp image while page loadingAndroid:在页面加载时显示临时图像
【发布时间】:2012-04-14 21:13:17
【问题描述】:

我试图在页面完全加载到 webView 之前显示图像,但 webview 显示空白片刻,然后显示页面显示空白屏幕的时间量我想显示一些图像。我是在 viewpager 中使用 webview。

我尝试过 onPageStarted,onPageFinished 方法,但没有任何成功。

代码如下:

       web.setWebViewClient(new WebViewClient() {
                    // load url
                    public boolean shouldOverrideUrlLoading(WebView view, String url) {
                        view.loadUrl(url);
                        return true;
                    }

                    // when finish loading page
                    public void onPageFinished(WebView view, String url) {
                        web.setVisibility(View.VISIBLE);
                        image.setVisibility(View.GONE);
                    }
                });

                    <ImageView
                        android:id="@+id/imageviewloading"
                        android:layout_width="wrap_content"
                        android:layout_height="0dip"
                        android:layout_gravity="center"
                        android:layout_weight="1"
                        android:contentDescription="@string/app_name"
                        android:src="@drawable/photo_downloading" />

                    <WebView
                        android:id="@+id/website"
                        android:layout_width="match_parent"
                        android:layout_height="match_parent"
                        android:visibility="gone" />
                </LinearLayout>

【问题讨论】:

  • 您是否尝试过 AsyncTask 来执行该功能?因为你需要的行为可以通过 AsyncTask 的 doInBackground 和 onProgressUpdate 轻松实现。
  • 是的,我也用过。但我不想在这里用。

标签: android webview android-viewpager


【解决方案1】:

您可以像这样在 WebView 中跳转页面加载开始和页面加载完成事件:

myWebView.setWebViewClient(new WebViewClient() {
    @Override
    public void onPageStarted(WebView view, String url, Bitmap favicon) {
        super.onPageStarted(view, url, favicon);
        // Show placeholder icon here
        }

    @Override
    public void onPageFinished(WebView view, String url) {
        super.onPageFinished(view, url);
        // Hide placeholder image here
        }
    });

【讨论】:

  • 我试过但显示白屏然后我想到了你可以用我的代码检查的想法。
  • 我不知道你所说的“显示白屏”是什么意思。通过设置背景颜色,您可以轻松查看该白色区域是什么。是 Web 视图吗?是图像视图吗?如果两者都不是,那么您的布局不正确(我无法判断,因为您只发布了其中的一部分)。如果是 WebView,那么您的页面加载失败,或者您正在加载白页。
  • 你对一件事是正确的,是的,背景是白色,第二件事你提到的页面加载失败,这不是这里的情况。我的网页正在显示,但它需要一些时间,我想显示一些图像,直到页面未完全加载。亲爱的,再次检查我的问题。
【解决方案2】:

它的

   webview.setWebChromeClient(new WebChromeClient() { 
         public void onProgressChanged(WebView view, int progress) {   
                       // Activities and WebViews measure progress with different scales.    
         // The progress meter will automatically disappear when we reach 100% 
            activity.setProgress(progress * 1000);  
             }
              });

这对我有用

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-05-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-11-15
    • 1970-01-01
    相关资源
    最近更新 更多