二十二、图文混合排版

本文介绍了如何在Android应用中实现图文混合排版,重点使用了SpannableStringBuilder类来处理文字和图片的结合。通过设定图片链接的特定格式,如"{image=链接地址}", 使用正则表达式抓取这些链接,并将其替换为实际的图片。在处理大量图片时,可能面临加载问题,可以参考Android-Universal-Image-Loader库进行优化。" 106296778,7838421,Huey与Celery:任务队列的对比分析,"['分布式系统', '任务调度', 'Python库', '异步任务', 'Celery框架', 'Huey框架']
摘要由CSDN通过智能技术生成

我们在APP上看的帖子,有文字又有图片,经过我个人分析,应该就是通过图文混合排版实现的,主要用到的类就是SpannableStringBuilder。

在帖子中显示的图片,保存在服务器时,就是一个链接地址,为了便于我们在文章中把图片链接地址找出来,我们规定图片链接的格式是:{image=链接地址},这样我们就可以通过正则表达式找出图片链接和图片的位置,然后替换成图片插入到文章中。


一、使用正则表达式

String pattern = "\\{image=.*?\\}"; // 最小匹配
Pattern r = Pattern.compile(pattern);
Matcher m = r.matcher(postInfo.content);
while(m.find()) {
    final String url = m.group();
    /*
       其他逻辑
    */
 }
一开始我的正则表达式是:

{image=.*?}
一直测试都通不过,不能获取到正常的字符串,后来经过群里的热心网友指点,才发现需要对中括号做转义,因为中括号在正则表达式里有特殊含义,加了两个反斜杠解决问题。


二、链接替换成图片

先把代码贴出:

SpannableStringBuilder ssb = new SpannableStringBuilder(postInfo
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值