先预览一下效果
源码地址:https://github.com/heinika/SimpleChatUI

先定义一个包含反射的ImageGettter

/** * 用于解析富文本中的表情图片 */mImageGetter = new Html.ImageGetter() {@Overridepublic Drawable getDrawable(String source) {        Class clazz = R.mipmap.class;try {            Field field = clazz.getDeclaredField(source);int sourceId = field.getInt(field);            Drawable drawable = getResources().getDrawable(sourceId);            drawable.setBounds(0, 0, 50, 50);return drawable;        } catch (NoSuchFieldException e) {            e.printStackTrace();        } catch (IllegalAccessException e) {            e.printStackTrace();        }return null;    }};

将ImageGetter传递到adapter

messageAdapter = new MessageAdapter(messages, inflater, mImageGetter);/** * 点击表情时,将富文本添加到edittext中 */mGridViewFace.setOnItemClickListener(new AdapterView.OnItemClickListener() {@Overridepublic void onItemClick(AdapterView<?> parent, View view, int position, long id) {        Spanned spanned = Html.fromHtml(" + faces.get(position).getName() + "'/>", mImageGetter, null);mEditTextMsg.getText().insert(mEditTextMsg.getSelectionStart(), spanned);    }});

将富文本转换为String并传入moudel

messageSend.setMassageContent(filterHtml(Html.toHtml(mEditTextMsg.getText())));messages.add(messageSend);/*用正则表达式过滤掉无关的文本 */public String filterHtml(String str) {    str = str.replaceAll("<(?!br|img)[^>]+>", "").trim();    return str;}

在adapter用传入的imagegetter解析:图片

vhRight.mTextViewSend.setText(Html.fromHtml(message.getMassageContent(), mImageGetter, null));

完成任务!!!

更多相关文章

  1. 为什么要学习 Markdown?究竟有什么用?
  2. Android(安卓)自定义注解
  3. 对hint 设置大小及颜色,可用此方法对字符串设置不同颜色或大小
  4. Android实现自定义view---绘制图片
  5. androidWebView-Javascript与android交互小框架
  6. 自定义样式去除标题栏(TItleBar)
  7. android中Animation的使用!
  8. java 自定义注解(翻译)
  9. RadioButton样式自定义

随机推荐

  1. 一行代码完成Android(安卓)7 FileProvide
  2. Android常见漏洞介绍(1):Intent Scheme URL
  3. 关于ionic混合开发App打包过程详解-andro
  4. Android(安卓)MediaRecoder实现电话录音,
  5. Android之Context理解
  6. Android处理touch冲突的解决办法
  7. ANDROID Installation error: INSTALL_FA
  8. Android(安卓)Studio 单元测试
  9. mac下搭建android sdk
  10. Webkit for Android分析