WebView的使用(基本篇)

来源:互联网 发布:网络主播解约协议 编辑:程序博客网 时间:2024/06/05 07:15

WebView wv = (WebView) findViewById(R.id.webview);


※ WebView 加载数据的几种方法


wv.loadData("html 代码","text/html",”UTF-8”); 这样出现的情况是乱码,并没有正确的显示。如果需要正确的显示,可以用下面的方式

wv.loadData("html 代码","text/html; charset=UTF-8",null);

 

1.设置滚动条

wv.setHorizontalScrollBarEnabled(false);// 设置水平滚动条

wv.setVerticalScrollBarEnabled(false);// 设置竖直滚动条

 

2.设置点击事件

wv.setWebViewClient(new MyWebViewClient());

 

private class MyWebViewClient extends WebViewClient {

     public boolean shouldOverrideUrlLoading(WebView view, String url) {

如果不想让点击做任何操作,可以直接返回true

     (return true;)

可以再这里做你想要的操作,如果跳转到其他界面,调用本webview

Eg:view.loadUrl(url);          

return true;

     }

}


WebSettings webSettings =   wv.getSettings();

如果webView中需要用户手动输入用户名、密码或其他,则webview必须设置支持获取手势焦点。

webview.requestFocusFromTouch();

 

※ webSettings 属性

Webview 自适应屏幕大小

1.打开页面时, 自适应屏幕:  (设置加载进来的页面自适应手机屏幕 )    webSettings.setUseWideViewPort(true);//设置此属性,可任意比例缩放webSettings.setLoadWithOverviewMode(true);

 疑问:第一次进来的时候是这样的




可以缩放滑动,但是第二次进来就变了,不可以滑动了


 

不解???!!!

 

2.使页面支持缩放:

webSettings.setSupportZoom(true);// 设置是支持缩放(如果置为false,webSettings.setDisplayZoomControls(true) 没有效果)

webSettings.setDisplayZoomControls(true);// 没发现有什么变化webSettings.setBuiltInZoomControls(true);// 支持缩放,手动触摸进行缩放(true: 可以缩放 false:不可以缩放)

3.

webSettings.setLayoutAlgorithm(LayoutAlgorithm.SINGLE_COLUMN); //支持内容重新布局  

LayoutAlgorithm是一个枚举用来控制页面的布局,有三个类型:

1.NARROW_COLUMNS:可能的话使所有列的宽度不超过屏幕宽度

2.NORMAL:正常显示不做任何渲染

3.SINGLE_COLUMN:把所有内容放大webview等宽的一列中

SINGLE_COLUMN类型可以设置页面居中显示,页面可以放大缩小,但这种方法不怎么好,有时候会让你的页面布局走样而且我测了一下,只能显示中间那一块,超出屏幕的部分都不能显示。

4.

DisplayMetrics metrics = new DisplayMetrics();

getWindowManager().getDefaultDisplay().getMetrics(metrics);
   int mDensity = metrics.densityDpi;
   DebugLog.d(TAG, "densityDpi = " + mDensity);
   if (mDensity == 240) {
    webSettings.setDefaultZoom(ZoomDensity.FAR);
   } else if (mDensity == 160) {
      webSettings.setDefaultZoom(ZoomDensity.MEDIUM);
   } else if(mDensity == 120) {
    webSettings.setDefaultZoom(ZoomDensity.CLOSE);
   }else if(mDensity == DisplayMetrics.DENSITY_XHIGH){
    webSettings.setDefaultZoom(ZoomDensity.FAR);
   }else if (mDensity == DisplayMetrics.DENSITY_TV){
    webSettings.setDefaultZoom(ZoomDensity.FAR);
   }

 

webSettings.setLoadsImagesAutomatically(true);  //支持自动加载图片。true:加载图片,false:不加载图片

webSettings.setJavaScriptEnabled(true);  //支持js


webSettings.supportMultipleWindows();  //多窗口 

 

webSettings.setCacheMode(WebSettings.LOAD_CACHE_ELSE_NETWORK);  //关闭webview中缓存 

 

webSettings.setAllowFileAccess(true);  //设置可以访问文件 

 

webSettings.setNeedInitialFocus(true); //webview调用requestFocus时为webview设置节点

 

webSettings.setJavaScriptCanOpenWindowsAutomatically(true); //支持通过JS打开新窗口 

0 0
原创粉丝点击