android webview 对话框,Android Webview加载对话框未被解除

public class WebDialog extends Dialog

{

static final int BLUE = 0xFF6D84B4;

static final float[] DIMENSIONS_DIFF_LANDSCAPE =

{ 20, 60 };

static final float[] DIMENSIONS_DIFF_PORTRAIT =

{ 40, 60 };

static final FrameLayout.LayoutParams FILL = new FrameLayout.LayoutParams(ViewGroup.LayoutParams.FILL_PARENT, ViewGroup.LayoutParams.FILL_PARENT);

static final int MARGIN = 4;

static final int PADDING = 2;

static final String DISPLAY_STRING = "touch";

private String mUrl;

// private DialogListener mListener;

private ProgressDialog mSpinner;

private WebView mWebView;

private LinearLayout mContent;

private TextView mTitle;

public WebDialog(Context context, String url)

{

super(context);

mUrl = url;

}

@Override

protected void onCreate(Bundle savedInstanceState)

{

super.onCreate(savedInstanceState);

mSpinner = new ProgressDialog(getContext());

mSpinner.requestWindowFeature(Window.FEATURE_NO_TITLE);

mSpinner.setMessage("Loading...");

mContent = new LinearLayout(getContext());

mContent.setOrientation(LinearLayout.VERTICAL);

setUpTitle();

setUpWebView();

Display display = getWindow().getWindowManager().getDefaultDisplay();

final float scale = getContext().getResources().getDisplayMetrics().density;

int orientation = getContext().getResources().getConfiguration().orientation;

float[] dimensions = (orientation == Configuration.ORIENTATION_LANDSCAPE) ? DIMENSIONS_DIFF_LANDSCAPE : DIMENSIONS_DIFF_PORTRAIT;

addContentView(mContent, new LinearLayout.LayoutParams(display.getWidth() - ((int) (dimensions[0] * scale + 0.5f)), display.getHeight() - ((int) (dimensions[1] * scale + 0.5f))));

}

private void setUpTitle()

{

requestWindowFeature(Window.FEATURE_NO_TITLE);

Drawable icon = getContext().getResources().getDrawable(R.drawable.ic_launcher);

mTitle = new TextView(getContext());

mTitle.setText("Website");

mTitle.setTextColor(Color.WHITE);

mTitle.setTypeface(Typeface.DEFAULT_BOLD);

mTitle.setBackgroundColor(BLUE);

mTitle.setPadding(MARGIN + PADDING, MARGIN, MARGIN, MARGIN);

// mTitle.setCompoundDrawablePadding(MARGIN + PADDING);

// mTitle.setCompoundDrawablesWithIntrinsicBounds(icon, null, null, null);

mContent.addView(mTitle);

}

private void setUpWebView()

{

mWebView = new WebView(getContext());

mWebView.setVerticalScrollBarEnabled(false);

mWebView.setHorizontalScrollBarEnabled(false);

mWebView.setWebViewClient(new WebDialog.DialogWebViewClient());

mWebView.getSettings().setJavaScriptEnabled(true);

System.out.println(" mURL = "+mUrl);

mWebView.loadUrl(mUrl);

mWebView.setLayoutParams(FILL);

mContent.addView(mWebView);

}

private class DialogWebViewClient extends WebViewClient

{

@Override

public boolean shouldOverrideUrlLoading(WebView view, String url)

{

view.loadUrl(url);

return true;

}

@Override

public void onReceivedError(WebView view, int errorCode, String description, String failingUrl)

{

super.onReceivedError(view, errorCode, description, failingUrl);

WebDialog.this.dismiss();

}

@Override

public void onPageStarted(WebView view, String url, Bitmap favicon)

{

super.onPageStarted(view, url, favicon);

mSpinner.show();

}

@Override

public void onPageFinished(WebView view, String url)

{

super.onPageFinished(view, url);

String title = mWebView.getTitle();

if (title != null && title.length() > 0)

{

mTitle.setText(title);

}

mSpinner.dismiss();

}

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值