Android Spanned实现TextView富文本效果(2)--表情
2017-06-02 20:17
603 查看
原文:http://www.cnblogs.com/lichenwei/p/4612079.html
今天学习富文本后续表情的处理
这种实现方式是通过Android官方给我们提供的Html类下面的fromHtml方法,这个方法可以对字符串进行HTML格式化,让TextView等一些控件”认识”HTML。
fromHtml有2个重载方法,下面我简单点来说:
用法:
首先定义一个类似Html标签的String
调用
ImageGetter 为处理html中的处理器,生成Drawable对象并返回。
创建ImageGetter 主要实现下面的方法,source为标签中src属性的值。
反射方法获取图片资源
设置文本
就可以看到效果了
今天学习富文本后续表情的处理
这种实现方式是通过Android官方给我们提供的Html类下面的fromHtml方法,这个方法可以对字符串进行HTML格式化,让TextView等一些控件”认识”HTML。
fromHtml有2个重载方法,下面我简单点来说:
1、当你需要转换的HTML代码是纯文字,比如超链接,换行符,邮件收发等,那么直接使用第一个方法即可,将你的文本信息直接传入方法。 2、当你需要转换的HTML代码是带图片的,比如<IMG/>,那么你就需要使用到重载的第二个方法了,这个方法里面有个ImageGetter对象,实现这个类会发现它回调了一个抽象getDrawable方法,在这个方法里,我们可以进行远程图片的下载获取,本地资源图片的获取等。第三个参数TagHandler是用来自定义一些不属于HTML代码的一些标签,一般我们不会去用到,直接置为null即可。
用法:
首先定义一个类似Html标签的String
String html = "<img src='mode1_s'/>我是什么<p/><img src='mode1_b'/>反弹";
调用
Html.fromHtml()方法设置图片
Spanned spanned = Html.fromHtml(html, new Html.ImageGetter() { @Override public Drawable getDrawable(String source) { //根据资源变量名称获取R资源Id,再根据资源Id获取到Drawable对象 Drawable drawable = getResources().getDrawable(getResourceId(source)); drawable.setBounds(0, 0, drawable.getIntrinsicWidth(), drawable.getIntrinsicHeight()); return drawable; } }, null);
ImageGetter 为处理html中的处理器,生成Drawable对象并返回。
创建ImageGetter 主要实现下面的方法,source为标签中src属性的值。
反射方法获取图片资源
public int getResourceId(String name) { try { //利用Java反射机制获取R资源Id Field field = R.drawable.class.getField(name); return Integer.parseInt(field.get(null).toString()); //静态字段 get(null)也可以得到值 } catch (NoSuchFieldException e) { e.printStackTrace(); } catch (IllegalAccessException e) { e.printStackTrace(); } catch (IllegalArgumentException e) { e.printStackTrace(); } return 0; }
设置文本
mTextView.setText(spanned);
就可以看到效果了
相关文章推荐
- Android TextView富文本、超链接和添加文字背景等其他效果的实现
- Android TextView实现多文本折叠、展开效果
- Android 01:AutoCompleteTextView-简单实现实现自动输入文本效果
- android TextView 文本内容收起,展开的效果实现
- [置顶] Android中TextView实现富文本展示效果
- Android TextView 自定义识别文本中的超链接并打开自身WebView(按照微信效果实现)
- Android开发中TextView 实现右上角跟随文本动态追加圆形红点
- Android TextView实现跑马灯效果
- android用TextView实现跑马灯效果
- Android TextView多行文本滚动实现
- android自定义的TextView,实现跑马灯效果
- TextView属性android:ellipsize实现跑马灯效果,TextView内容过长加省略号,点击显示全部内容
- android---textview控件学习笔记之显示表情图片和文本(二)
- Android 自己定义TextView 实现文本间距
- Android TextView实现垂直滚动效果的方法
- Android中TextView和ImageView实现倾斜效果
- Android中TextView实现垂直滚动和上下滚动效果
- android标题栏下面弹出提示框(一) TextView实现,带动画效果
- Android UI 之居中绘制文本内容的正确方法——实现自定义一个TextView
- Android自定义TextView实现文字倾斜效果