首页 > 学院 > 开发设计 > 正文

webview加载html格式带图片的数据

2019-11-06 09:36:10
字体:
来源:转载
供稿:网友

1.

String htmlContent = StringEscapeUtils.unescapejava(data);// String m = "src=";// htmlContent = htmlContent.replaceAll(m, "src=/"" + Constants.IMAGE_URL);Document doc = Jsoup.parse(htmlContent);Elements elem_img = doc.getElementsByTag("img");// 图片自适应屏幕if (elem_img.size() != 0) {for (Element el_img : elem_img) {el_img.attr("style", "width:100%");}}htmlContent = doc.toString();webview.loadData(htmlContent, "text/html; charset=UTF-8", null);webview.getSettings().setDefaultTextEncodingName("UTF-8");// 设置默认为utf-8 

2.

String html = response.getContent();if (html.contains("src=/"/public")){    html = html.replace("src=/"/public", "src="+"/""+Config.WEB_HOST+"/""+"+/"/public");}showWebView(html);PRivate void showWebView(String html){    // 设置WevView要显示的网页    webviewArticleContent.getSettings().setJavaScriptEnabled(true);//设置支持Javascript    webviewArticleContent.getSettings().setBlockNetworkImage(false);    webviewArticleContent.requestFocus();//触摸焦点起作用.如果不设置,则在点击网页文本输入框时,不能弹出软键盘及不响应其他的一些事件。    webviewArticleContent.getSettings().setLayoutAlgorithm(WebSettings.LayoutAlgorithm.SINGLE_COLUMN);    if(Build.VERSION.SDK_INT>=Build.VERSION_CODES.LOLLIPOP){        webviewArticleContent.getSettings().setMixedContentMode(WebSettings.MIXED_CONTENT_ALWAYS_ALLOW);    }    //        luntanListview.getSettings().setBuiltInZoomControls(true); //页面添加缩放按钮    //                luntanListview.setScrollBarStyle(WebView.SCROLLBARS_OUTSIDE_OVERLAY);   //取消滚动条    //                点击链接由自己处理,而不是新开Android的系统browser响应该链接。    webviewArticleContent.setWebViewClient(new WebViewClient(){        @Override        public void onReceivedSslError(WebView view, SslErrorHandler handler, SslError error){            //注意:super句话一定要删除,或者注释掉,否则又走handler.cancel()默认的不支持https的了。            //super.onReceivedSslError(view, handler, error);            //handler.cancel(); // Android默认的处理方式            //handler.handleMessage(Message msg); // 进行其他处理            handler.proceed(); // 接受所有网站的证书        }        @Override        public boolean shouldOverrideUrlLoading(WebView view, String url) {            view.loadUrl(url);            return true;        }    });    String CSS_STYPE = "<head><style>img{max-width:100% !important;} table{max-width:100% !important;}</style></head>";    webviewArticleContent.loadDataWithBaseURL(null, CSS_STYPE + html, "text/html", "utf-8", null);    //        luntanListview.setOnFocusChangeListener(new View.OnFocusChangeListener() {    //            @Override    //            public void onFocusChange(View v, boolean hasFocus) {    //                if (hasFocus) {    //                    try {    //                        // 禁止网页上的缩放    //                        Field defaultScale = WebView.class    //                                .getDeclaredField("mDefaultScale");    //                        defaultScale.setaccessible(true);    //                        defaultScale.setFloat(luntanListview, 1.0f);    //                    } catch (SecurityException e) {    //                        e.printStackTrace();    //                    } catch (IllegalArgumentException e) {    //                        e.printStackTrace();    //                    } catch (IllegalAccessException e) {    //                        e.printStackTrace();    //                    } catch (NoSuchFieldException e) {    //                        e.printStackTrace();    //                    }    //                }    //            }    //        });}


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表