包含webview的警报对话框中的进度条

时间:2013-03-28 07:51:04

标签: java android webview progress-bar alertdialog

我创建了一项活动,在点击特定按钮时,会打开一个包含WebView 的警告对话框。

一切正常,除非WebView的url被加载。在加载WebView的内容时,会显示警告对话框的图块和按钮,看起来有点奇怪。

这是加载网页内容的网页

时的警告对话框的屏幕截图:

Alert dialog while webview's content is getting loaded

成功加载网页视图的内容后,看起来像

After loading webview content

我想要的是在加载webview的内容时,会显示进度条或显示固定的背景图像。如何实现?

我用来创建此提醒的方法是

//method to zoom images

public void zoomImage(String imageUrl)
{
    AlertDialog.Builder alert = new AlertDialog.Builder(this);
    alert.setTitle("Zoomed Image");
    WebView wv = new WebView(this);
    wv.setBackgroundColor(Color.WHITE);
    wv.getSettings().setBuiltInZoomControls(true);
    wv.setInitialScale(400);
    wv.loadUrl(imageUrl);
    wv.setWebViewClient(new WebViewClient()
    {
    @Override
    public boolean shouldOverrideUrlLoading(WebView view, String url)
    {
      view.loadUrl(url);
      return true;
    }
  });
alert.setView(wv);
alert.setNegativeButton("Close", new DialogInterface.OnClickListener()
{
@Override
public void onClick(DialogInterface dialog, int id)
{
}
});
alert.show();
}

提前致谢!

2 个答案:

答案 0 :(得分:1)

您可以在警报对话框自定义布局中使用进度条,并使可见性消失 OnPageFinishedMethod。

您可以像这样创建自定义提醒对话框:

        LayoutInflater inflater = getLayoutInflater();
        View dialoglayout = inflater.inflate(R.layout.big_east, (ViewGroup) getCurrentFocus());
        AlertDialog.Builder builder = new AlertDialog.Builder(this);
        builder.setView(dialoglayout);

    builder.setTitle("Zoomed Image");

你应该覆盖两个方法,就像“shouldOverrideUrlLoading”一样。 方法是“OnPageStart”和“OnPageFinished”。

在OnPageStart中显示对话框并在OnPageFinish中使进度条消失。 希望它有所帮助。

答案 1 :(得分:0)

您可以使用WebView.PictureListener(已弃用,但仍可使用。不确定是否有可用的替代方法):

wv.setPictureListener(new WebView.PictureListener() {
    @Override
    public void newPicture(WebView view, Picture arg1) {
        alert.show();
    }
}