Android TextView中有图片有文字混合排列
1.使用html.fromHtml
2.设置ImageGetter
3.使用< img src>标签
上点步骤代码给大家一个思路概念。
设置文字
textView.setText(Html .fromHtml(getMyString(), getImageGetterInstance(), null));
获取文字
private String getMyString() {
return "你的左护法" + "<img src='" + R.drawable.left
+ "'/>" + "+云韵,你的右护法" + "<img src='" + R.drawable.right
+ "'/>" + "+杜美莎女王" ;
}
text图文混排
public ImageGetter getImageGetterInstance() {
ImageGetter imgGetter = new Html.ImageGetter() {
@Override
public Drawable getDrawable(String source) {
int fontH = (int) (getResources().getDimension(
R.dimen.textSizeMedium) * 1.5);
int id = Integer.parseInt(source);
Drawable d = 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;
}
下图按照上面思路做的,给大家个参考。从网路上找的,侵删
相信大家有大概的概念和思路了,那么我要召唤华丽的分割线
以下是以前我以前做智能家居时候的部分代码和效果
code截图
效果图
把我的代码贴出来,如果有需要可以直接复制
private void init() {
helperTV.setText(Html.fromHtml(descString(), getImage(), null));
}
/** 图片 **/
private ImageGetter getImage() {
ImageGetter imageGetter=new Html.ImageGetter() {
@Override
public Drawable getDrawable(String source) {
int id=Integer.parseInt(source);
Drawable drawable=getResources().getDrawable(id);
drawable.setBounds(0, 0, (int) (drawable.getIntrinsicHeight()*2.5), (int) (drawable.getIntrinsicWidth()*0.5));
return drawable;
}
};
return imageGetter;
}
/** 文字 **/
private String descString() {
return "答:有两种方法:1、您可以进入APP的智能网关操作界面,点击“" + "<img src='" + R.drawable.more_helper_bun
+ "'/>" + "”按钮,看到上面的数字倒计时开始即可入网;2、在网关上按下“" + "<img src='" + R.drawable.more_helper_bun
+ "'/>" + "”按钮,看到按钮上的LED闪烁即可,3分钟内,上电的设备会自动加入网络。";
}
text多颜色处理
跟图文混排一样的思路用Html.fromHtml的方式
textViews[i].setText(Html.fromHtml("<font color=\"#FF9D08\">" + stringsColor[i] + "</font>" + stringsWhite[i] + ""));
还是上个花枝招展的图吧
当然,还可以用 SpannableStringBuilder 来处理
SpannableStringBuilder 可以将原来的String以不同的样式显示出来,比如在原来String上加下划线、加背景色、改变字体颜色、用图片把指定的文字给替换掉
稍后写一篇专门针对SpannableStringBuilder 的文章。
相信这些完全可以解决在开发中遇到的绝大多数的text图文混排和text多颜色之类之类的需求了。