Android TextView中有图片有文字混合排列和多颜色text字体组合

Android TextView中有图片有文字混合排列

1.使用html.fromHtml
2.设置ImageGetter
3.使用< img src>标签

上点步骤代码给大家一个思路概念。

设置文字

textView.setText(Html .fromHtml(getMyString(), getImageGetterInstance(), null));

获取文字

private String getMyString() {
     return "你的左护法" + "" + "+云韵,你的右护法" + "" + "+杜美莎女王" ;

    }

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;
  }

下图按照上面思路做的,给大家个参考。从网路上找的,侵删

Android TextView中有图片有文字混合排列和多颜色text字体组合_第1张图片
bieren.png

相信大家有大概的概念和思路了,那么我要召唤华丽的分割线


以下是以前我以前做智能家居时候的部分代码和效果

code截图
Android TextView中有图片有文字混合排列和多颜色text字体组合_第2张图片
smartcode.png
效果图
Android TextView中有图片有文字混合排列和多颜色text字体组合_第3张图片
smartimg.jpg
把我的代码贴出来,如果有需要可以直接复制
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的智能网关操作界面,点击“" + "" + "”按钮,看到上面的数字倒计时开始即可入网;2、在网关上按下“" + "" + "”按钮,看到按钮上的LED闪烁即可,3分钟内,上电的设备会自动加入网络。";
    }
text多颜色处理
跟图文混排一样的思路用Html.fromHtml的方式
textViews[i].setText(Html.fromHtml("" + stringsColor[i] + "" + stringsWhite[i] + ""));
还是上个花枝招展的图吧
hua.png
当然,还可以用 SpannableStringBuilder 来处理

SpannableStringBuilder 可以将原来的String以不同的样式显示出来,比如在原来String上加下划线、加背景色、改变字体颜色、用图片把指定的文字给替换掉
稍后写一篇专门针对SpannableStringBuilder 的文章。
相信这些完全可以解决在开发中遇到的绝大多数的text图文混排和text多颜色之类之类的需求了。

你可能感兴趣的:(Android TextView中有图片有文字混合排列和多颜色text字体组合)