zoukankan      html  css  js  c++  java
  • Html.fromHtml采坑篇

    在显示复杂的文本样式时,通常采用SpannableString和Html.formHtml来解决需求。

    在使用html过程中,通常会出现以下问题:

    1、提示Html.formHtml方法过时

    解决

    使用API Level 23或之前的设备可以用过时的方法,API Level 24或以上的设备则使用2个参数的方法(fromHtml(String source, int flags) )即可。 

    即:

            TextView tv_text = (TextView) findViewById(R.id.tv_text);
            CharSequence charSequence;
            String content = "<p>简介:</p><p>1.nickname:wildma!</p><p>2.职业:android攻城狮</p>";
            if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.N) {
                charSequence = Html.fromHtml(content,Html.FROM_HTML_MODE_LEGACY);
            } else {
                charSequence = Html.fromHtml(content);
            }
            tv_text.setText(charSequence);

    其中的flags表示: 
    FROM_HTML_MODE_COMPACT:html块元素之间使用一个换行符分隔 
    FROM_HTML_MODE_LEGACY:html块元素之间使用两个换行符分隔

    1、提示Html.formHtml方法标签无效(<del>中划线为例说明)

    解决

     String contentStr = "是否确认还款%1$s元?(包含本金:%2$s元;利息:<del>%3$s</del>元,<font color="#FF9302">%4$s元</font>;服务费:<del>%5$s</del>元,<font color="#FF9302">%6$s元</font>)";
     
    dialog.setContentStr(Html.fromHtml(contentStr, null, new Html.TagHandler() {
                                    int startTag;
                                    int endTag;
                                    @Override
                                    public void handleTag(boolean opening, String tag, Editable output, XMLReader xmlReader) {
                                        if (tag.equalsIgnoreCase("del")){
                                            if(opening){
                                                startTag = output.length();
                                            }else{
                                                endTag = output.length();
                                                output.setSpan(new StrikethroughSpan(),startTag,endTag, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
                                            }
                                        }
                                    }
                                }));
    ggband
  • 相关阅读:
    PhpStorm中如何调整字体大小
    PhpStorm-2017.1.2破解步骤
    Eclipse/MyEclipse 最最常用的快捷键
    Invalid result location value/parameter
    系统重装--相关问题
    喜马拉雅||亲爱的,慢慢行走
    QQ聊天界面模式切换
    myeclipse中如何修改项目的名称
    软考-程序设计语言基础(编译原理)
    软考-计算机组成原理、体系机构与网络安全
  • 原文地址:https://www.cnblogs.com/ggband/p/10303791.html
Copyright © 2011-2022 走看看