我创建了一项活动,在点击特定按钮时,会打开一个包含WebView 的警告对话框。
一切正常,除非WebView的url被加载。在加载WebView的内容时,会显示警告对话框的图块和按钮,看起来有点奇怪。
这是加载网页内容的网页
时的警告对话框的屏幕截图:
成功加载网页视图的内容后,看起来像:
我想要的是在加载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();
}
提前致谢!
答案 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();
}
}