Android UI设计小知识——富文本

富文本

  什么是富文本? 
  可能大家要问了,富文本是什么?怎么是这个“富”来,好奇怪啊……第一次接触的时候我也不知道什么是富文本,但是后来老师给举了一个例子就明白了。都喜欢用QQ聊天,有时候我们会给文字设置颜色让其特殊显示或者添加表情,让聊天更加丰富。这些包含特殊显示文字和图片的文本其实就是富文本。 
  富文本,可以支持一部分的HTML,也可以动态添加的一些图片。

如何使用富文本

  如何使用富文本这个问题其实在我之前的博客(Android UI设计——TextView控件 )也详细的讲述过了,但是在这里我还是决定拿出来在单独的开一篇博客。

获得富文本有两种方法:

  • 一种是在标签中传src值,然后将src值传入ImageGetter的对象中通过反射来获得src值对应的图片的id。
  textFu = (TextView) findViewById(R.id.textFu);
     ImageGetter imageGetter = new Html.ImageGetter() {
            @Override
            public Drawable getDrawable(String s) {
                int id = R.mipmap.ic_launcher;
                //方法一:通过反射获得图片id。
                Class clazz =R.mipmap.class;
                try {
                    Field field = clazz.getDeclaredField(s);
                    id = field.getInt(clazz);
                } catch (NoSuchFieldException e) {
                    e.printStackTrace();
                } catch (IllegalAccessException e) {
                    e.printStackTrace();
                }
                Drawable drawable = getResources().getDrawable(id);
                drawable.setBounds(0,0,drawable.getIntrinsicWidth(),drawable.getIntrinsicHeight());
            }
        };
        Spanned spanned = Html.fromHtml("这是一个<font color='#00ffff'>富文本</font>,然后加一个图标<img src='a_merchant_06_click'/>",imageGetter ,null);
        textFu.setText(spanned);
        textFu.setPaintFlags(Paint.STRIKE_THRU_TEXT_FLAG);

  • 第二种是在标签中不传src值,然后通过ImageGetter的对象自己获得图片的id。
     textFu = (TextView) findViewById(R.id.textFu);
        ImageGetter imageGetter = new Html.ImageGetter() {
            @Override
            public Drawable getDrawable(String s) {
                //方法二,直接通过R.mipmap.a_merchant_06_click,得到图片。
                Drawable drawable = getResources().getDrawable(R.mipmap.a_merchant_06_click);
                drawable.setBounds(0,0,drawable.getIntrinsicWidth(),drawable.getIntrinsicHeight());
                return drawable;
            }
        };
        Spanned spanned = Html.fromHtml("这是一个<font color='#00ffff'>富文本</font>,然后加一个图标<img src=''/>",imageGetter ,null);
        textFu.setText(spanned);
        textFu.setPaintFlags(Paint.STRIKE_THRU_TEXT_FLAG);

这里写图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值