您的位置:首页 > Web前端 > HTML

不要通过html中font标签的size属性来更改文字的精确大小

2013-07-30 21:18 337 查看
        TextView tv=(TextView)findViewById(R.id.textView1);  

        String html="<html><head><title>TextView使用HTML</title></head><body><p><strong>强调</strong></p><p><em>斜体</em></p>"  

                +"<p><a href=\"http://www.dreamdu.com/xhtml/\">超链接HTML入门</a>学习HTML!</p><p><font color=\"#aabb00\">颜色1"  

                +"</p><p><font color=\"#00bbaa\">颜色2</p><h1>标题1</h1><h3>标题2</h3><h6>标题3</h6><p>大于>小于<</p><p>" +  

                "下面是网络图片</p><img src=\"http://avatar.csdn.net/0/3/8/2_zhang957411207.jpg\"/></body></html>";  

          

        tv.setMovementMethod(ScrollingMovementMethod.getInstance());//滚动  

        tv.setText(Html.fromHtml(html));
看到可以用html的font标签改变文字的颜色,我尝试改变文字大小,后来发现不起效果。通过查看源代码发现,
private void handleStartTag(String tag, Attributes attributes) {

        } else if (tag.equalsIgnoreCase("font")) {

            startFont(mSpannableStringBuilder, attributes);

}
    private static void startFont(SpannableStringBuilder text,

                                  Attributes attributes) {

        String color = attributes.getValue("", "color");

        String face = attributes.getValue("", "face");

        int len = text.length();

        text.setSpan(new Font(color, face), len, len, Spannable.SPAN_MARK_MARK);

    }

    private static void endFont(SpannableStringBuilder text) {

        int len = text.length();

        Object obj = getLast(text, Font.class);

        int where = text.getSpanStart(obj);

        text.removeSpan(obj);

        if (where != len) {

            Font f = (Font) obj;

            if (!TextUtils.isEmpty(f.mColor)) {

                if (f.mColor.startsWith("@")) {

                    Resources res = Resources.getSystem();

                    String name = f.mColor.substring(1);

                    int colorRes = res.getIdentifier(name, "color", "android");

                    if (colorRes != 0) {

                        ColorStateList colors = res.getColorStateList(colorRes);

                        text.setSpan(new TextAppearanceSpan(null, 0, 0, colors, null),

                                where, len,

                                Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);

                    }

                } else {

                    int c = getHtmlColor(f.mColor);

                    if (c != -1) {

                        text.setSpan(new ForegroundColorSpan(c | 0xFF000000),

                                where, len,

                                Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);

                    }

                }

            }

            if (f.mFace != null) {

                text.setSpan(new TypefaceSpan(f.mFace), where, len,

                             Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);

            }

        }

    }

font标签只实现了两个属性就是:color和face。没有实现size属性。所以不能精确设置文字大小。只能通过big,small这样的相对大小设置。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: