Android之textview怎么显示不同的字体,颜色

在同一个TextView中,若要显示不同样式的字体,一般使用以下两种方式,一种是利用Html,另一种借助于Spannable类。

一、利用html显示不同样式的字体

@Override
    public void onActivityCreated(Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        super.onActivityCreated(savedInstanceState);
        TextView txt_main=(TextView) view.findViewById(R.id.text_one);
        TextView txt_two=(TextView) view.findViewById(R.id.text_two);
        String html = "<p><strong>你是小强吗?</strong></p>"
                + "<p><a href=\"http://www.panxiecan.cn\">博客</a>超链接</p><p><font color=\"#aabb00\">颜色1"
                + "</p><p><font color=\"#00bbaa\">颜色2</p><h1>标题1</h1><h6>标题2</h6><p>2>1</p><p>"
                ;
        txt_main.setText(Html.fromHtml(html));

二、利用Spannable显示不同样式字体

// 利用Spannable使“新的来电”和时间同时显示,并且可以分行、以不同的字体大小显示
                String allString = "少爷电话\n2016年12月13日";
                Spannable WordtoSpan = new SpannableString(allString);
                WordtoSpan.setSpan(new AbsoluteSizeSpan(28), 0, 6,
                        Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
                WordtoSpan.setSpan(new AbsoluteSizeSpan(15), 5, allString.length(),
                        Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);

                txt_two.setText(WordtoSpan);

这里写图片描述
解:
1、需要先将普通的String型数据转换成Spannable对象;

2、利用Spannable的setSpan()函数设置显示样式。该函数第一个参数表示设置样式,如这里的new AbsoluteSizeSpan(58)是设置字体的字号为58。第二个和第三个参数分别表示起止字符,如(new AbsoluteSizeSpan(58), 0, 4,Spannable.SPAN_EXCLUSIVE_EXCLUSIVE)表示从第一个到第四个字符字号设置为58。第四个参数自己查。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值