欢迎来到 Android人的问与答 ,在这里提问或帮助他人解答。 Question2Answer的1.6.x和1.7.x版本的中文翻译包我修改更新:

Question2answer

如何使用中文语言包

Q2A 1.6.x - Chinese Simplified (简体中文)

Q2A 1.7.x - Chinese Simplified (简体中文)


国内服务器推荐 阿里云服务器
国外服务器推荐 DigitalOcean
VPN推荐 正版Green VPN
阿里云推荐码:ldvq50

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

0 喜欢 0 不喜欢
2,234 浏览
  1.         TextView tv=(TextView)findViewById(R.id.textView1);  
  2.         String html="<html><head><title>TextView使用HTML</title></head><body><p><strong>强调</strong></p><p><em>斜体</em></p>"  
  3.                 +"<p><a href=\"http://www.dreamdu.com/xhtml/\">超链接HTML入门</a>学习HTML!</p><p><font color=\"#aabb00\">颜色1"  
  4.                 +"</p><p><font color=\"#00bbaa\">颜色2</p><h1>标题1</h1><h3>标题2</h3><h6>标题3</h6><p>大于>小于<</p><p>" +  
  5.                 "下面是网络图片</p><img src=\"http://avatar.csdn.net/0/3/8/2_zhang957411207.jpg\"/></body></html>";  
  6.           
  7.         tv.setMovementMethod(ScrollingMovementMethod.getInstance());//滚动  
  8.         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这样的相对大小设置。

最新提问 1月 18, 2015 分类:HTML 5 | 用户: forlong401 (7,050 分)

登录 或者 注册 后回答这个问题。

...