在该项目中点击新闻列表的条目会跳转到一个具体详情的网页,采用WebView来加载网页,而不是使用本地浏览器去加载网页。代码如下:
1、xml文件中添加WebView控件和ProgressBar控件用于在WebView内展现圆形进度条
<FrameLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<WebView
android:id="@+id/web_view"
android:layout_width="match_parent"
android:layout_height="match_parent"/>
<ProgressBar
android:id="@+id/pb_webview"
android:layout_gravity="center"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
</FrameLayout>
2、java代码中
mWebView = (WebView) findViewById(R.id.web_view);
pbLoading = (ProgressBar) findViewById(R.id.pb_webview);
url = getIntent().getStringExtra("url");
//指定要访问的服务器路径
mWebView.loadUrl(url);
//获取webView的设置
WebSettings settings = mWebView.getSettings();
//显示放大缩小按钮
settings.setBuiltInZoomControls(true);
//只是双击缩放
settings.setUseWideViewPort(true);
//打开js功能
settings.setJavaScriptEnabled(true);
mWebView.setWebViewClient(new WebViewClient(){
@Override
public void onPageStarted(WebView view, String url, Bitmap favicon) {
super.onPageStarted(view, url, favicon);
pbLoading.setVisibility(View.VISIBLE);
}
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
view.loadUrl(url);//强制在当前页面加载网页 不用跳浏览器
return true;
}
@Override
public void onPageFinished(WebView view, String url) {
super.onPageFinished(view, url);
pbLoading.setVisibility(View.INVISIBLE);
}
});