0

特定のボタンをクリックすると WebView を含む警告ダイアログが開くアクティビティを作成しました。

WebView の URL がロードされている場合を除いて、すべて正常に動作しています。WebView のコンテンツを読み込んでいる間、アラート ダイアログのタイルとボタンが表示されますが、これは少し奇妙に見えます。

これは、内部の webview の web ページを読み込んでいる間の警告ダイアログのスクリーンショットです。

WebView のコンテンツがロードされている間の警告ダイアログ

webviewのコンテンツを正常にロードすると、次のようになります

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();
}

前もって感謝します!

4

2 に答える 2

2

アラート ダイアログのカスタム レイアウトで進行状況バーを取得し、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」のように 2 つのメソッドをオーバーライドする必要があります。メソッドは「OnPageStart」と「OnPageFinished」です。

OnPageStart でダイアログを表示し、OnPageFinish でプログレス バーを非表示にします。それが役に立てば幸い。

于 2013-03-28T08:03:31.063 に答える
0

を使用できますWebView.PictureListener(非推奨ですが、引き続き機能します。使用可能な代替手段があるかどうかはわかりません):

wv.setPictureListener(new WebView.PictureListener() {
    @Override
    public void newPicture(WebView view, Picture arg1) {
        alert.show();
    }
}
于 2013-03-28T07:56:26.613 に答える