2017-02-12 19 views
0

ウェブページがwebviewに読み込まれるまでスプラッシュ画面を表示する必要があります。ウェブサイトの読み込み時にスプラッシュ画面を終了する

次のコードを使用します。それは可能ですか?

public class SplashScreen extends Activity { 

    protected Intent intent; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 

     requestWindowFeature(Window.FEATURE_NO_TITLE); 

     setContentView(R.layout.activity_splash_screen); 

     intent = new Intent(getApplicationContext(), MainActivity.class); 

     // MainActivity.class contains WebView 

     Thread myThread = new Thread() { 
      @Override 
      public void run() { 

       try { 
        sleep(5000); 
        startActivity(intent); 
        finish(); 
       } catch (InterruptedException e) { 
        e.printStackTrace(); 
       } 
      } 

     }; 

     myThread.start(); 
    } 
} 

そして

public class MainActivity extends Activity { 

    private WebView view; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 

     requestWindowFeature(Window.FEATURE_NO_TITLE); 

     setContentView(R.layout.activity_main); 

     String url = "http://google.com"; 
     view = (WebView)this.findViewById(R.id.webView1); 

     view.clearCache(true); 
     WebSettings s = view.getSettings(); 
     s.setJavaScriptEnabled(true); 

     s.setCacheMode(WebSettings.LOAD_DEFAULT); 
     s.setDomStorageEnabled(true); 

     view.loadUrl(url); 
    } 

答えて

1

MainActivity.java自体にGONEにスプラッシュ画面レイアウトとWebViewのレイアウトとのWebViewの設定可視性を作成し、スプラッシュ画面に別々の活動をしないでください。

MainActivityが開いているときにWebViewを初期化し、カスタムWebViewClientを設定します。カスタムwebViewClientのonPageFinished()をオーバーライドし、このメソッドでwebviewを表示し、スプラッシュ画面レイアウトをGoneにします。ここ

同じ:Loading a WebView URL before splashscreen finishes

0

私のソリューションはここ

private WebView view; 
private ImageView splashScreen; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 

    requestWindowFeature(Window.FEATURE_NO_TITLE); 

    setContentView(R.layout.activity_main); 

    splashScreen = (ImageView) this.findViewById(R.id.spscreen); 

    String url = "http://google.com"; 
    view = (WebView)this.findViewById(R.id.webView1); 

    view.setWebViewClient(new WebViewClient() {    

     public void onPageFinished(WebView view, String url) { 
      // do your stuff here 
      splashScreen.setVisibility(View.INVISIBLE); 
      view.setVisibility(View.VISIBLE); 
     } 
    }); 

     WebSettings s = view.getSettings(); 
    s.setJavaScriptEnabled(true); 

    s.setCacheMode(WebSettings.LOAD_DEFAULT); 
    s.setDomStorageEnabled(true); 

    view.loadUrl(url); 
} 

とレイアウト

<ImageView 
    android:id="@+id/spscreen" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:layout_alignParentBottom="true" 
    android:layout_alignParentRight="true" 
    android:src="@drawable/splashscreen" 
    android:visibility="visible" 
    android:scaleType="fitXY"/> 

<WebView 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:id="@+id/webView1" 
    android:visibility="invisible" /> 
です
関連する問題