WebView加载HTML片段实现详情活动页面

WebView可加载带图片或者不带图片的HTML片段,代码如下:

布局代码

            <WebView
                android:id="@+id/webView"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                tools:ignore="WebViewLayout" />

加载html片段方法(加载文字类)

    /**
     * 加载HTML片段
     * @param html 片段
     */
    private void setWebView(String html) {
        if (!html.isEmpty()) {
            //24以上Html.fromHtml(String source)已过时,以下可用
            if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
                webView.loadData(Html.fromHtml(html,FROM_HTML_MODE_COMPACT).toString(), "text/html", "UTF-8");
            } else {
                webView.loadData(Html.fromHtml(html).toString(), "text/html", "UTF-8");
            }
        }
    }

Flag 参数介绍

FROM_HTML_MODE_COMPACT:html块元素之间使用一个换行符分隔 
FROM_HTML_MODE_LEGACY:html块元素之间使用两个换行符分隔 

加载html片段方法(加载图文类)

    /**
     * 加载HTML片段(图文)
     *
     * @param html 片段
     */
    @SuppressLint("SetJavaScriptEnabled")
    private void setWebView(String html) {
        webView.getSettings().setJavaScriptEnabled(true);
        String varjs = "<script type='text/javascript'> \nwindow.onload = function()\n{var $img = document.getElementsByTagName('img');" +
                "for(var p in  $img){$img[p].style.width = '100%'; $img[p].style.height ='auto'}}</script>";//将img标签属性定死的js代码
        html = html.replaceAll("width=\"\\d+\"", "width=\"100%\"").replaceAll("height=\"\\d+\"", "height=\"auto\"");
        webView.loadDataWithBaseURL(null,html, "text/html", "utf-8", null);
    }

 统一调用加载HTML

        String html1 = "<p>如果对您有帮助,麻烦点个小小的赞</p>";
        String html2 = "<img src=\"https://xiongmiao-web.oss-cn-shenzhen.aliyuncs.com/upload/web/image/20210726/bubugao2.jpg\" title=\"bubugao2.jpg\" alt=\"bubugao2.jpg\"/>";
        setWebView(html1);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

丁氏开发工作室

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值