http://blog.youkuaiyun.com/to_be_designer/article/details/48163117
富文本
什么是富文本?
可能大家要问了,富文本是什么?怎么是这个“富”来,好奇怪啊……第一次接触的时候我也不知道什么是富文本,但是后来老师给举了一个例子就明白了。都喜欢用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;
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);
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 第二种是在标签中不传src值,然后通过ImageGetter的对象自己获得图片的id。
textFu = (TextView) findViewById(R.id.textFu);
ImageGetter imageGetter = new Html.ImageGetter() {
@Override
public Drawable getDrawable(String s) {
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);