需求:直播项目中,用到了一个TextView图文换排的一个需求。
Html.fromHtml: 可以将比如文本框中的字符串进行HTML格式化,超链接等也可以这么做。
效果图
![](https://img.haomeiwen.com/i1392629/ac16702f03d6b1c8.png)
在6666..的时候第二行顶个的效果。
要实现这个效果呢,就用到了Html.fromHtml东东,
-
设置数据####
mTvFrom.setText(Html.fromHtml(descString(name,content), getImageGetterInstance(), null));
-
配置 图文 字体颜色等####
private String descString(String name ,String content) {
return "![](" + R.drawable.level+ ")" +"<font color='#FFF111'>"+ name
+ ": "+"</font>"+"<font color='#222FFF'>"+content+"</font>";}
-
设置图片####
private Html.ImageGetter getImageGetterInstance() {
Html.ImageGetter imgGetter = new Html.ImageGetter() {
@Override
public Drawable getDrawable(String source) {
//R.dimen.textSizeMedium 和字体大小一样就可以
int fontH = (int)
(mContext.getResources().getDimension(R.dimen.textSizeMedium) * 1.5);
int id = Integer.parseInt(source);
Drawable d = mContext.getResources().getDrawable(id);
int height = fontH;
int width = (int) ((float) d.getIntrinsicWidth() / (float) d.getIntrinsicHeight()) * fontH;
if (width == 0) {
width = d.getIntrinsicWidth();
}
d.setBounds(0, 0, width, height);
return d;
}
};
return imgGetter;}
网友评论