在启动画面完成之前加载WebView URL

时间:2017-01-16 05:02:54

标签: javascript android imageview android-webview

我按照这个教程https://www.youtube.com/watch?v=QD9nhyWX-gs创建了一个动画的闪屏,这只是我的徽标做了一个360˚旋转,文本和旋转后的背景下它打开了一个webview,显示google.com.au但它加载网页时有白色背景,我需要先在启动画面中加载网页并保持动画重复,直到它加载的网站,代码相当简单,只是一个旋转的图像视图。

刚试过:

public class WelcomeActivity extends Activity {
WebView web;
ImageView imageView;

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_welcome);

    web = (WebView) findViewById(R.id.webView);

    web.setWebViewClient(new myWebClient());
    web.getSettings().setJavaScriptEnabled(true);
    web.loadUrl("http://www.voxelservers.net");
    imageView = (ImageView) findViewById(R.id.imageView);
}

public class myWebClient extends WebViewClient
{
    @Override
    public void onPageStarted(WebView view, String url, Bitmap favicon) {
        // TODO Auto-generated method stub
        super.onPageStarted(view, url, favicon);
    }

    @Override
    public boolean shouldOverrideUrlLoading(WebView view, String url) {
        // TODO Auto-generated method stub

        view.loadUrl(url);
        return true;

    }

    @Override
    public void onPageFinished(WebView view, String url) {
        // TODO Auto-generated method stub
        super.onPageFinished(view, url);

        imageView.setVisibility(View.GONE);
    }
}

// To handle "Back" key press event for WebView to go back to previous screen.
@Override
public boolean onKeyDown(int keyCode, KeyEvent event)
{
    if ((keyCode == KeyEvent.KEYCODE_BACK) && web.canGoBack()) {
        web.goBack();
        return true;
    }
    return super.onKeyDown(keyCode, event);
}

}

它只是一个黑屏。

1 个答案:

答案 0 :(得分:0)

我们可以实现这一目标的一种方法是,而不是为webview打开一个新的活动, 在WelcomeActivity.java中,将webView和imageView添加到布局中,使webview变为不可见或Gone。

在打开WelcomeActivity时初始化webView并设置自定义WebViewClient。在自定义webViewClient中覆盖onPageFinished(),在此方法中,可以看到webview,并且可以使用imageView。