android多媒体图文混排,Android 图文混排(二) EditText实现图文显示

总体思路如下:

通过ImageSpan来放置图片,再创建一个SpannableString对象,以便插入用ImageSpan对象封装的图像,最后用ImageSpan对象替换你指定的字符串,完成EditText的图文混排

具体操作:

1、选择要插入的图片,这里我把图片上传到了服务器,服务器回给我一个网络访问地址,这样可以结合Android 图文混排(一) TextView实现图文显示形成一个发布和现实的过程。获得服务器的地址,然后创建ImageSpan对象

Bitmap loadedImage = BitmapFactory.decodeFile(path);

loadedImage = Bitmap.createBitmap(loadedImage, 0, 0, loadedImage.getWidth(), loadedImage.getHeight(), matrix, true);

ImageSpan imageSpan = new ImageSpan(context, loadedImage);

2、创建一个SpannableString对象,以便插入用ImageSpan对象封装的图像,SpannableString的值我们就用html的img标签,src里面我们放置服务器给我们的网络访问地址

String tempUrl = "%5C%22%22";

SpannableString spannableString = new SpannableString(tempUrl);

3、用ImageSpan对象替换你指定的字符串,并将选择的图片追加到EditText中光标所在位置

spannableString.setSpan(imageSpan, 0, tempUrl.length(), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);

// 将选择的图片追加到EditText中光标所在位置

int index = et.getSelectionStart();

// 获取光标所在位置

Editable edit_text = et.getEditableText();

if (index < 0 || index >= edit_text.length()) {

edit_text.append(spannableString);

} else {

edit_text.insert(index, spannableString);

}

4、最后,为了不让图片挤在一起,我们在图片后面加上一个换行

edit_text.insert(index + spannableString.length(), "\n");

System.out.println("插入的图片:" + spannableString.toString());

附上效果图

56ec5b2ded55

S60124-174216.jpg

56ec5b2ded55

S60124-174311.jpg

56ec5b2ded55

S60124-174320.jpg

如有什么不对或者不规范的地方请留言或私信我,非常感谢

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值