如何使用Html.toHtml保留字体大小并使用Html.fromHtml恢复它?

时间:2016-07-29 04:44:45

标签: android fonts android-edittext spannablestringbuilder

我显然对Android很新。谁能帮我?我有EditText,其中有一个功能来设置颜色(文本的颜色不同),fontsize(文本的字体大小不同),字体系列。我使用SpannableStringBuilder实现了像

 String st = getResources().getString(R.string.default_texteditor_text);
 SpannableStringBuilder text = new SpannableStringBuilder(st);

 text.setSpan(new ForegroundColorSpan(lastTextColor), 0, st.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
        text.setSpan(new AbsoluteSizeSpan(lastTextSize*2), 0, st.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);

        editText.setText(text);
        editText.setMovementMethod(LinkMovementMethod.getInstance());

并使用

保存editText
 String spannableString = Html.toHtml(editText.getText());

并且在特定条件下我想要将editText保存为将其保存为字符串之前的状态,所以

   Spanned s = Html.fromHtml(textPropertiesOld.getSpannableString());

    editText.setText(s);
    editText.setSelection(editText.getSelectionEnd());

所有内容都按原样设置,但所有文本的字体大小都设置为相似。 示例:我在edittext中设置的是

enter image description here

但是恢复后我得到了

enter image description here

当我尝试打印字符串

  

Log.d(" HTML =",spannableString);

我得到了以下HTML ....

<p dir="ltr"><font color ="#000000">j</font><font color
="#000000">h</font><font color ="#000000">g</font><font color ="#000000">j</font><font color ="#000000">h</font><font color ="#000000">Your Text Here...</font><br>
    <font color ="#e91d1d"><font size ="11">Q</font></font><br>
    <font color ="#e91d1d"><font size ="27">T</font></font><font color ="#e91d1d"><font size ="27">e</font></font><font color ="#e91d1d"><font size ="27">z</font></font><font color ="#e91d1d"><font size ="27">t</font></font><font color ="#e91d1d"><font size ="11">h</font></font><font color ="#e91d1d"><font size ="11">h</font></font><font color ="#e91d1d"><font size ="11">j</font></font><font color ="#e91d1d"><font size ="11">g</font></font><font color ="#e91d1d"><font size ="11">g</font></font><font color ="#e91d1d"><font size ="11">b</font></font></p>

先谢谢

0 个答案:

没有答案