2013-10-29 161 views
0

我已將閃屏添加到我的應用程序,但啓動畫面僅閃爍幾個毫秒。我想顯示我的飛濺,直到我的webview完全加載。 這是我的代碼...謝謝!Android啓動畫面閃爍

WebView wv = (WebView) findViewById(R.id.webView1); 
      wv.getSettings().setJavaScriptEnabled(true); 
      wv.setWebViewClient(new WebViewClient() { 

       ... 

       @Override 
       public void onPageFinished(WebView view, String url) { 
        //hide loading image 
        findViewById(R.id.imageLoading1).setVisibility(View.GONE); 
        //show webview 
        findViewById(R.id.webview).setVisibility(View.VISIBLE); 
       } 


      });  
      wv.loadUrl("http://myurl.com"); 

回答

0

您可以切換setVisibility調用。使webview可見,然後使加載圖像消失。這應該消除閃爍。

+0

此: '公共無效onPageFinished(的WebView視圖,字符串URL){ \t //顯示的WebView findViewById(R.id.webview).setVisibility(View.VISIBLE); //隱藏加載圖片 findViewById(R.id.imageLoading1).setVisibility(View.GONE);' 我試試這個,但它是一樣的,飛濺仍然閃爍。 – Emirnop

+0

也許先保存視圖到變量中,然後調用setVisibility之後?這將刪除代碼遍歷View樹的時間。所以View v1 = findViewById(...);查看v2 = findViewById(...)然後v1.setVisibility(...),v2.setVisibility(...)。 –

0

您需要檢查加載狀態的代碼。下面是從WebView reference

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

示例代碼達到100%後,就可以讓啓動畫面消失。

+0

我在我的應用程序中有該代碼。但是我不想在每次webview加載時都啓動屏幕顯示,只在應用程序啓動的同時加載webiew。 – Emirnop

+0

您可以首次計算並記住布爾值或首選項,並在onPregressChanged中編寫條件語句。那麼啓動畫面將只顯示一次 – yushulx