2012-03-01 19 views
1

WebViewにページが完全に読み込まれる前にイメージを表示しようとしていますが、Webビューが空白で表示されていて、私はいくつかの画像を表示したい。私はビューページ内でwebviewを使用しています。Android:ページ読み込み中に一時イメージを表示

私は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> 
+0

機能を実行するためにAsyncTaskを試しましたか?あなたが必要とする動作は、AsyncTaskのdoInBackgroundとonProgressUpdateによって簡単に達成できます。 –

+0

ええ、私もそれを使用しました。しかし、私はここで使用したくありません。 – Akram

答えて

1

その

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); 
      } 
       }); 

私のためのトリックでした

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 
     } 
    }); 
+0

私は白い画面を表示しようとしましたが、私は自分のコードで確認することができます。 – Akram

+0

「白い画面を表示しています」という意味は分かりません。背景色を設定することで、その白い部分が何であるかを簡単に確認することができます。それはWebViewですか?それはImageViewですか?どちらもそうでなければ、あなたのレイアウトは正しくありません(あなたがその一部を投稿しただけではわかりません)。 WebViewの場合は、ページの読み込みに失敗しているか、白いページが読み込まれています。 –

+0

あなたは正しいものが1つありますええ背景は白で、2番目のことはページロードが失敗していると言います。私のウェブページは表示されていますが、いつか撮っています。完全にロードされます。もう一度私の質問をチェックしてください。 – Akram