cocos2d-x 中使用的android控件详细说明之webview
注:这个是解决webview控件显示问题 时对webview所做的一番学习,记录下来供大家参考
m_kWebView = new WebView(m_pkActInstance); //生成一个webview (m_pkActInstance)是在oncrete的时候指定的实例,这里是this
m_kWebLayout.addView(m_kWebView);
LinearLayout.LayoutParams linearParams = (LinearLayout.LayoutParams) m_kWebView.getLayoutParams();//设置线性布局的一些属性
linearParams.leftMargin = x;
linearParams.topMargin = y;
linearParams.width = width;
linearParams.height = height;
m_kWebView.setBackgroundColor(0);
// int screenDensity = getResources().getDisplayMetrics().densityDpi ;
//这里是根据不同的分辨率设置文本的不同缩放,如果进入时默认变大可以调整zoomdensity 解决WebView里面,焦点到编辑框上,网页字体变大
// WebSettings.ZoomDensity zoomDensity = WebSettings.ZoomDensity.MEDIUM ;
// switch (screenDensity){
// case DisplayMetrics.DENSITY_LOW :
// zoomDensity = WebSettings.ZoomDensity.CLOSE;
// break;
// case DisplayMetrics.DENSITY_MEDIUM:
// zoomDensity = WebSettings.ZoomDensity.MEDIUM;
// break;
// case DisplayMetrics.DENSITY_HIGH:
// zoomDensity = WebSettings.ZoomDensity.FAR;
// break ;
// }
m_kWebView.getSettings().setDefaultZoom( WebSettings.ZoomDensity.FAR);
m_kWebView.getSettings().setCacheMode(WebSettings.LOAD_DEFAULT); //离线缓存功能
m_kWebView.getSettings().setAppCacheEnabled(false);
//
m_kWebView.getSettings().setUseWideViewPort(true); //双击变大、变小 这里的viewport 配合 html 的属性设置会有不同效果譬如
<meta name="viewport" content="width=device-width, user-scalable=no" />
m_kWebView.getSettings().setLoadWithOverviewMode(true); //自动匹配webview 大小 与上面的一起使用
m_kWebView.getSettings().setJavaScriptEnabled(true); //设置是否支持js
m_kWebView.getSettings().setLayoutAlgorithm(LayoutAlgorithm.NORMAL); //这里有三个选项 常用的有两个
缩放排版: webView.getSettings().setLayoutAlgorithm(LayoutAlgorithm.SINGLE_COLUMN);
适应屏幕: webView.getSettings().setLayoutAlgorithm(LayoutAlgorithm.NORMAL);
m_kWebView.setLayoutParams(linearParams);
m_kWebView.setWebViewClient(new WebViewClient(){ //设置获得WebView网页加载初始化和完成事件
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url)
{
return false;
}
public void onPageFinished(WebView view, String url) {
super.onPageFinished(view, url);
m_kWebView.requestFocus();
//m_kWebView.getSettings().setUseWideViewPort(true);
//m_kWebView.getSettings().setLoadWithOverviewMode(true);
}
public void onPageStarted(WebView view, String url, Bitmap favicon)
{
super.onPageStarted(view, url, favicon);
//m_kWebView.getSettings().setUseWideViewPort(true);
//m_kWebView.getSettings().setLoadWithOverviewMode(true);
}
参考连接:http://blog.csdn.net/sxsj333/article/details/6742589