android中WebView加载网页居中显示

方式一:

WebSettings mWebSettings = webView.getSettings(); 
mWebSettings.setLayoutAlgorithm(LayoutAlgorithm.SINGLE_COLUMN);

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

1.NARROW_COLUMNS:可能的话使所有列的宽度不超过屏幕宽度
2.NORMAL:正常显示不做任何渲染
3.SINGLE_COLUMN:把所有内容放大webview等宽的一列中

用SINGLE_COLUMN类型可以设置页面居中显示,页面可以放大缩小,但这种方法有缺陷,有时候会让你的页面布局扭曲(不推荐使用)。


方式二:

//设置载入页面自适应手机屏幕,居中显示 
WebSettings mWebSettings = webView.getSettings(); 
mWebSettings.setUseWideViewPort(true); 
mWebSettings.setLoadWithOverviewMode(true); 

setUseWideViewPort是设置webview推荐使用的窗口,设置为true。
setLoadWithOverviewMode是设置webview加载的页面的模式,也设置为true。


这方法可以让你的页面适应手机屏幕的分辨率,完整的显示在屏幕上,可以放大缩小(推荐使用)。



WebView缩放问题:


1、webview支持页面缩放
//缩放开关
webView.getSettings().setSupportZoom(true);
设置此属性,仅支持双击缩放,不支持触摸缩放(android4.0)


// 设置是否可缩放
webView.getSettings().setBuiltInZoomControls(true);
如果设置了此属性,那么webView.getSettings().setSupportZoom(true);也默认设置为true


2、无限缩放
无限缩放,就需要使用大视图模式,如下:
webView.getSettings().setUseWideViewPort(true);设置此属性,可任意比例缩放。
注:1、初始缩放值可这样设置:webView.setInitialScale(initalValue);
      2、缩放后,要使内容适配屏幕,不超出屏幕外显示,实现换行。这方面效果应该由html控制。
   如<p style="word-break:break-all">test</p>实现自动换行

public class ResultActivity extends TitleActivity{

    private WebView mWebView;
    private WebSettings mWebSettings;

    /* (non-Javadoc)
     * @see app.ui.TitleActivity#onCreate(android.os.Bundle)
     */
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setUpViews();
    }

    private void setUpViews()
    {
        setContentView(R.layout.activity_result);
        showBackwardView(R.string.button_backward, true);
        mWebView = (WebView)findViewById(R.id.webview);

        mWebSettings = mWebView.getSettings();
        mWebSettings.setJavaScriptEnabled(true);    //允许加载javascript
        //mWebSettings.setSupportZoom(true);          //允许缩放
        //mWebSettings.setBuiltInZoomControls(true);
        //mWebSettings.setUseWideViewPort(true);      //任意比例缩放
		
        mWebSettings.setUseWideViewPort(true);      //设置加载进来的页面自适应手机屏幕(可缩放)
        mWebSettings.setLoadWithOverviewMode(true);

        mWebView.setWebViewClient(new WebViewClient(){
            @Override
            public boolean shouldOverrideUrlLoading(WebView view, String url) {
                view.loadUrl(url);
                return super.shouldOverrideUrlLoading(view, url);
            }
        });
    }
}

  • 7
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值