利用webView实现加载网络图片居中并适应手机屏幕,以及img设置前缀

导语:
今天在项目中遇到一个小问题,就是webview作为容器盛放img时候的前缀和如何居中问题,如何解决呢,接下来就说说我解决步骤吧。
1.第一步,我想通过设置webview 参数控制webview内容中的img头部,没想到还真有这个方法,上代码:

String baseUrl = "http://m.fanai.com";
String html= "<img src="/upload/201606/18/201605181203083693.gif" alt="" />";
contentWeb.loadDataWithBaseURL(baseUrl, html, "text/html", "utf-8", null);
这样之后是可以的效果相当于是加载了<img src="http://m.fanai.com/upload/201606/18/201605181203083693.gif" alt="" />这么个webView可以完全释读的标签,然后加载出来后,效果并不十分理想,因为直接加载原图图片的大小,肯定要大于手机屏幕,然后我又去阅读那些前辈们的文章,全部都异口同声说有那么两个方法,上代码:
1.web.getSettings().setLayoutAlgorithm(LayoutAlgorithm.SINGLE_COLUMN);
2.web.getSettings().setLoadWithOverviewMode(true);
但是经这么一设置后,效果是有了,但是还是不理想,图片全部缩小而且靠左边显示了,最后我开动脑筋,加了一段普通的CSS控制,问题得到完美解决。

重要代码:

  contentWeb = (WebView) findViewById(R.id.notice_content_content);
  contentWeb.getSettings().setJavaScriptEnabled(true);
  webSettings = contentWeb.getSettings();
  webSettings.setUseWideViewPort(true);
  webSettings.setLoadWithOverviewMode(true);
  webSettings.setJavaScriptEnabled(false);
  String baseUrl = "http://m.fanai.com";
//            contentWeb.loadDataWithBaseURL(baseUrl, html, "text/html", "utf-8", null);
            String css = "<style type=\"text/css\"> img {" +
                    "width:100%;" +
                    "height:auto;" +
                    "}" +
                    "body {" +
                    "margin-right:15px;" +
                    "margin-left:15px;" +
                    "margin-top:15px;" +
                    "font-size:45px;" +
                    "}" +
                    "</style>";
  html = "<html><header>" + css + "</header><body>" + html + "</body></html>";
  contentWeb.loadDataWithBaseURL(baseUrl, html, "text/html", "utf-8", null);

总结:问题解决还得靠自己。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值