webview使用详解


1.提高渲染等级 
webView.getSettings().setRenderPriority(WebSettings.RenderPriority.HIGH);
2.首先阻塞图片,让图片不显示
webView.getSettings().setBlockNetworkImage(true);
页面加载好以后,在放开图片:
webView.getSettings().setBlockNetworkImage(false);

3.在activity包中添加       android:hardwareAccelerated="true"  开启硬件加速属性



public class AppOwnWebActivity extends BaseActivity implements OnClickListener {

// PullToRefreshWebView mPullRefreshWebView;
/** 帮助的网页 */
private WebView mWeb;
/** 网络的url */
private String webUrl;
private ImageView mBackImg;
WebSettings settings ; 
@Override
public void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.act_app_web);
mBackImg = (ImageView) findViewById(R.id.backImg_id);
mBackImg.setOnClickListener(this);
if (null != getIntent().getExtras()) {
webUrl = getIntent().getExtras().getString("webUrl");
} else {
webUrl = "http://www.baidu.com";
}
initWebview();
}


/**
* 初始化webview
*/
private void initWebview() {

settings = mWeb.getSettings();
// 设置是否支持js调用Java代码
settings.setJavaScriptEnabled(true);
settings.setBlockNetworkImage(true);//设置延时加载图片
settings.setRenderPriority(WebSettings.RenderPriority.HIGH);//提高渲染等级
// 设置网页加载模式
settings.setCacheMode(WebSettings.LOAD_CACHE_ELSE_NETWORK);
// 是否支持缩放
settings.setSupportZoom(true);
// 设置是否使用WebView内置的放大机制
settings.setBuiltInZoomControls(false);


mWeb.setWebChromeClient(new WebChromeClient() {


@Override
public void onProgressChanged(WebView view, int newProgress) {
super.onProgressChanged(view, newProgress);
// 滚动条消失
if (newProgress == 100) {
}
}


});
// 设置浏览器
mWeb.setWebViewClient(new WebViewClient() {
// 加载页面的操作
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
mWeb.loadUrl(url);
return true;
}


// 开始加载页面
@Override
public void onPageStarted(WebView view, String url, Bitmap favicon) {
super.onPageStarted(view, url, favicon);
Common.showWheelDialog(AppOwnWebActivity.this);
}


// 加载完成
@Override
public void onPageFinished(WebView view, String url) {
super.onPageFinished(view, url);
settings.setBlockNetworkImage(false); 
Common.dismissWheelDialog();
// mPullRefreshWebView.onRefreshComplete();
}


// 加载失败,也是属于加载完成的
@Override
public void onReceivedError(WebView view, int errorCode,
String description, String failingUrl) {
// TODO Auto-generated method stub
super.onReceivedError(view, errorCode, description, failingUrl);
mWeb.loadUrl(CommonVariable.ERRORURL);
ToastUtil.showToast(AppOwnWebActivity.this,
R.string.str_page_loading_failed_value);
}
});
// 页面要加载的地址
if (Common.isNetworkConnected(this)) {
mWeb.loadUrl(webUrl);
} else {
mWeb.loadUrl(CommonVariable.ERRORURL);
}
// mWebFocus.addJavascriptInterface(new JavascriptInterface(),
// "jsInterface");
}


@Override
public void onClick(View v) {
// TODO Auto-generated method stub
finish();
}


@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
// TODO Auto-generated method stub

if (Common.isWheelDislogShow()) {
Common.dismissWheelDialog();
} else {
finish();
}
return super.onKeyDown(keyCode, event);
}
}

你可能感兴趣的:(webview使用详解)