【已解决】 EditText 使用 Html.fromHtml显示问题
   
我在TextView显示时是正常使用 在adapter中的代码块
// 将html语言转化为对应表情
Spanned sp = Html.fromHtml(content, new Html.ImageGetter() {
    @Override
    public Drawable getDrawable(String source) {
        return AllUtils.parserEmoji(mContext,source, (int) holder.tv_content.getTextSize()); // 获取本地的
    }
}, null);
holder.tv_content.setText(sp);
在editText 中写法如下 
String inputEmoji = String.format(AllUtils.imgbody , emojiName);
StringBuilder stringBuilder = new StringBuilder();
stringBuilder.append(et_moyu.getText().toString()).append(inputEmoji);
Log.e("-->","et_moyu.getText() = "+ et_moyu.getText().toString());
Spanned sp = Html.fromHtml(stringBuilder.toString(), new Html.ImageGetter() {
    @Override
    public Drawable getDrawable(String source) {
        return AllUtils.parserEmoji(PutMoyuActivity.this,source, (int) et_moyu.getTextSize());
    }
}, null);
et_moyu.setText(sp);
如果填入editText中就会发现只有一个最后的表情是显示的  去getText的时候会拿到一些代表情的符号  显示不出并发送出去也是这样的表情  有大佬能解析下吗 
AllUtils.方法如下 在大佬的代码下去改造的
/***
 * 切割 获取表Constance情包
 * @param mContext
 * @param source
 * @param textSize
 * @return
 */
public static Drawable parserEmoji(Context mContext, String source, int textSize) {
    //https://cdn.sunofbeaches.com/emoji/1.png
    //如果地址没有,直接返回null
    if (TextUtils.isEmpty(source)) {
        return null;
    }
    //如果地址有,是否是我们阳光沙滩的表情地址cdn.sunofbeaches.com/emoji
    if (!source.contains("cdn.sunofbeaches.com/emoji")) {
        //如果不是我们可以支持的表情地址,那放弃,直接返回null
        return null;
    }
    //如果是我们地址,那就截取png的名字
    int start = source.lastIndexOf("/");
    int end = source.lastIndexOf(".");
    if (start == -1 || end == -1) {
        //出现-1情况就是找不到这个字符串,这样应影响到后面的截取api
        return null;
    }
    String emojiName = source.substring(start + 1, end);
    //判断名字是否在我们内置的范围内
    Log.i("-->", "截取的表情名字:" + emojiName);
    // 断点表情包
      if (emojiName.contains("sob")){
          emojiName = emojiName.replace("sob", "");
          int emojiDrawableId = Integer.parseInt(emojiName);
          Drawable drawable = ContextCompat.getDrawable(mContext, emojiDrawableId);
          if (drawable == null) {
              return null;
          }
          //表情的大小和tv的文字大小一致,如果不设置就是宽高0/0
          drawable.setBounds(0, 0, textSize, textSize);
          return drawable;
      }
      if (!TextUtils.isDigitsOnly(emojiName) || TextUtils.isEmpty(emojiName)) {
          //如果表情名字不是数字,那不是我们的表情,如果后面规则有改变,可以做同步调整
          return null;
      }
      //判断1-130范围
      int emojiId = Integer.parseInt(emojiName);
      if (emojiId < 0 || emojiId > 130) {
          return null;
      }
      try {
          //因为图片名字是动态,这个需要反射获取内置表情
          Field declaredField = R.drawable.class.getDeclaredField("emoji_" + emojiName);
          int emojiDrawableId = declaredField.getInt(R.drawable.class);
          Drawable drawable = ContextCompat.getDrawable(mContext, emojiDrawableId);
          if (drawable == null) {
            return null;
        }
        //表情的大小和tv的文字大小一致,如果不设置就是宽高0/0
        drawable.setBounds(0, 0, textSize, textSize);
        return drawable;
    } catch (NoSuchFieldException | IllegalAccessException e) {
        e.printStackTrace();
    }
    return null;
}
发送的表情应该是这种格式吗
public static final String imgbody = "<img class=\"emoji\" src=\"https://cdn.sunofbeaches.com/emoji/%s.png\" width=\"20\" height=\"20\">";
您的每一个用心回答,都会让这个世界变得更美好一些!