Android使用EditText做图文混排

本文详细介绍了如何在Android的EditText中实现图文混排,包括添加图片、保存和恢复图文信息,以及处理在操作过程中遇到的坑。通过使用SpannableString和ImageSpan类,可以将图片插入EditText,并通过正则表达式处理字符串来恢复图片。同时,文章提到了添加大图可能导致的显示问题以及在某些设备上文字显示异常的解决方案。
摘要由CSDN通过智能技术生成

Android使用EditText做图文混排

安卓图文混排在网络上没有搜索到的丰富的资料,也没有找到合适的demo。之前在做项目的时候有相应的需求,在此做一个总结,并说明其中碰到的坑。

一、 向EditText中添加图片

Editable text = editText.getText();
text.insert(int where, CharSequence text);

以上代码可以用来向EditText中添加实现了CharSequence接口的类的实例,最常见的就是String类,所以,它是可以用来添加文字的,并且使用此方法后,会直接改变EditText中的内容,并且,如果此EditText设置了TextWatcher,TextWatcher中的方法将会被调用。向EditText中添加图片也需要用到此方法。
添加图片还涉及到两个重要的类:SpannableString与ImageSpan。SpannableString实现了CharSequence接口,可以添加到EditText中。并且它添加的文字有多种形式。SpannableString 没有无参构造器,实例化可以使用SpannableString(CharSequence source)。在这里可以传入String字符串,并且,后面插入的图片将会使用这里传入的字符串占位,因此,这里传入的字符串很重要

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值