3

我想在 Webview 加载时加载启动画面。我正在使用下面的代码,但 10 秒后我看到一个黑色的 webview。请帮忙。

public class MainActivity extends Activity {

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

        setContentView(R.layout.activity_main);
        progressBar = (ProgressBar) findViewById(R.id.progressBar1);

        WebView myWebView = (WebView) findViewById(R.id.webview);
        WebSettings webSettings = myWebView.getSettings();
        webSettings.setJavaScriptEnabled(true);
        myWebView.setVerticalScrollBarEnabled(false);
        myWebView.setHorizontalScrollBarEnabled(false);
        myWebView.getSettings().setLoadWithOverviewMode(true); 
        myWebView.getSettings().setUseWideViewPort(true);
        myWebView.getSettings().setRenderPriority(RenderPriority.HIGH);

        WebView webView = (WebView) findViewById(R.id.webview);
        webView.addJavascriptInterface(new WebAppInterface(this), "Android");
        myWebView.setWebViewClient(new WebViewClient());
        myWebView.setWebViewClient(new MyWebViewClient());
        myWebView.loadUrl("http://www.XXXXXXX.com);
        setContentView(R.layout.splash);
    }



    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.activity_main, menu);
        return true;
    }


    private class MyWebViewClient extends WebViewClient {


         public void onPageFinished (WebView myWebView, String url) {
             setContentView(R.layout.activity_main);
            } 
 }

我希望在加载 webview 时,显示带有应用程序徽标的启动画面。我该怎么做呢 ?我的代码正确吗?一段时间后我得到了 webview,但它似乎是空白的。

4

3 回答 3

1

请在您设置启动画面的位置显示一个对话框或启动另一个活动。

  setContentView(R.layout.splash);

将此行替换为您喜欢的解决方案,无论是看起来像启动画面的服装对话框,还是新活动中的另一个完整启动屏幕。

如果您启动新活动,则将活动实例保留在 MainActivity 中,当您的网页加载完成后,完成启动屏幕活动。

我更喜欢你为它制作全屏对话框,因为与你的情况相比,它更容易维护对话框。

于 2013-03-06T12:31:03.320 回答
0

我会建议你制作一个自定义对话框并在其中放置图像视图并在 webview 的onPageStarted方法上设置你想要的背景图像

@Override
                public void onPageStarted(WebView view, String url,
                        Bitmap favicon) {
                    // TODO Auto-generated method stub
                    super.onPageStarted(view, url, favicon);
                    ProgressDialog();
                    }
于 2013-03-06T12:17:36.160 回答
0

setContentView()不建议多次调用。将一个添加ImageView到您的主布局(将其设置src为您的初始屏幕图像)。默认使用隐藏imageView.setVisibility(View.INVISIBLE);。当您开始加载新页面时,将webView可见性更改为INVISIBLEimageView可见性为VISIBLEin function onPageStarted()。加载完成后,在函数中更改imageViewtoINVISIBLE的可见性和更改 to 的可见webView性。VISIBLEonPageFinished()

于 2013-03-06T12:48:03.787 回答