SpannableStringBuilder  官方文档解释:这个类可以使文本的内容和标记都可以改变。当我们要为TextView或者Edittext里面的文字加入加入一些效果,如下划线,颜色标 识,超链接等,类似word文档一样。这时候可以用到SpannableStringBuilder ,SpannableStringBuilder是 android.text里面的一个类,功能灰常强大。主要的一个方法就是setSpan (Object what, int start, int end, int flags),这个方法的作用就是在把某个范围内的文字替换成某种东西;以下是一些简单用法

//下划线

SpannableString builder_1=new SpannableString(textView1.getText());
                builder_1.setSpan(new UnderlineSpan(), 0, 3, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
                textView1.setText(builder_1);

//超链接

SpannableString builder_2=new SpannableString("网址:www.baidu.com");
                builder_2.setSpan(new URLSpan("www.baidu.com"), 3, 16, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
                textView2.setText(builder_2);

//样式

SpannableString builder_3=new SpannableString(textView3.getText());
                builder_3.setSpan(new StyleSpan(Typeface.BOLD_ITALIC), 0, 2, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
                textView3.setText(builder_3);

//图片表情
CharSequence text = "dsfdsfdddd[zem1]fdsfs";  
SpannableStringBuilder builder = new SpannableStringBuilder(text);  
String rexgString = "[zem1]";  
Pattern pattern = Pattern.compile(rexgString);  
Matcher matcher = pattern.matcher(text);  
 
while (matcher.find()) {  
    builder.setSpan(  
            new ImageSpan(this, R.drawable.ic_launcher), matcher.start(), matcher  
                    .end(), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);  
}  
 
textView4.setText(builder);

demo表情那里是仿陌陌表情,不详述。。。

demo地址:点击打开链接

SpannableStringBuilder 用法浅析以及仿陌陌表情的更多相关文章

  1. 移动端h5直播项目|html5直播实战开发|h5仿陌陌

    最近一些直播.小视频什么的都比较火,像陌陌.抖音.火山短视频… 于是空闲时间自己也利用html5技术也试着倒腾了下直播项目,使用到了h5+css3+iscroll+zepot+swiper+wlsPo ...

  2. 基于vue+uniapp直播项目|uni-app仿抖音/陌陌直播室

    一.项目简介 uni-liveShow是一个基于vue+uni-app技术开发的集小视频/IM聊天/直播等功能于一体的微直播项目.界面仿制抖音|火山小视频/陌陌直播,支持编译到多端(H5.小程序.Ap ...

  3. 社交类app开发( 仿陌陌 客户端+服务器端)

    一.开发所需要的技术 手机端需要Android/iOS开发人员,服务器端需要php/数据库开发人员, 如果再做网页版的话,WEB开发也是要的. 即时通讯 GPS地图 群聊 差不多 对 http  so ...

  4. 仿陌陌的ios客户端+服务端源码项目

    软件功能:模仿陌陌客户端,功能很相似,注册.登陆.上传照片.浏览照片.浏览查找附近会员.关注.取消关注.聊天.语音和文字聊天,还有拼车和搭车的功能,支持微博分享和查找好友. 后台是php+mysql, ...

  5. 仿陌陌的ios客户端+服务端源码

    软件功能:模仿陌陌客户端,功能很相似,注册.登陆.上传照片.浏览照片.浏览查找附近会员.关注.取消关注.聊天.语音和文字聊天,还有拼车和搭车的功能,支持微博分享和查找好友. 后台是php+mysql, ...

  6. Android spannableStringBuilder用法整理

    Android spannableStringBuilder用法整理 分类: Android开发2013-11-29 10:58 5009人阅读 评论(0) 收藏 举报 Androidspannabl ...

  7. 一周 GitHub 开源项目推荐:阿里、腾讯、陌陌、bilibili……

    阅读本文大概需要 2.8 分钟. 陌陌风控系统正式开源 陌陌风控系统静态规则引擎,零基础简易便捷的配置多种复杂规则,实时高效管控用户异常行为. GitHub 地址 https://github.com ...

  8. 微信、QQ、微博、陌陌……社交网络的底层逻辑是什么?

      两 年前的社交产品泛滥犹在眼前,场景之胜几乎到了言必谈社交的地步.时任阿里新CEO陆兆禧举全集团之力,力推新社交产品“来往”,动作之大震惊整个互联 网.如今,陆兆禧早早退场,只留下一个硬汉的孤独背 ...

  9. 微信、陌陌等著名IM软件设计架构详解

    对微信.陌陌等进行了分析,发出来分享一下(时间有些久了) 电量:对于移动设备最大的瓶颈就是电量了.因为用户不可能随时携带电源,充电宝.所以必须考虑到电量问题.那就要检查我们工程是不是有后台运行,心跳包 ...

随机推荐

  1. Linux dnsmasq 服务

    在日常开发中,有这么一个需求: 大家在公司内网同一个网段下,一般情况上网会由网关(一般是路由器)的DHCP服务分配IP.公司内网里放了几台服务器,分别配置成静态IP,这些IP是DHCP配置时预留的.服 ...

  2. jquery 效果网址分享

     http://www.lanrentuku.com/js/ http://www.baidu.com/link?url=2nuImAliKGCKyDeJ7ln2DR_2if5uKgr-em6a3dx ...

  3. ContentPresenter理解

    这是2年前写了一篇文章 http://www.cnblogs.com/Clingingboy/archive/2008/07/03/wpfcustomcontrolpart-1.html 我们先来看M ...

  4. jquery live hover

    $("table tr").live({ mouseenter: function() { //todo }, mouseleave: function() { //todo } ...

  5. SPOJ - LCS 后缀自动机入门

    LCS - Longest Common Substring A string is finite sequence of characters over a non-empty finite set ...

  6. EasyDarwin开源音频解码项目EasyAudioDecoder:EasyPlayer Android音频解码库(第二部分,封装解码器接口)

    上一节我们讲了如何基于ffmpeg-Android工程编译安卓上的支持音频的ffmpeg静态库:http://blog.csdn.net/xiejiashu/article/details/52524 ...

  7. Google Guava之Optional优雅的使用null

    为什么使用optional 使用Optional<T>除了简化粗鲁的if(null == object).降低函数的复杂度.增加可读性之外,它是一种傻瓜式的防护,Optional<T ...

  8. MFC获取电脑硬盘序列号(附源代码)

    在新建的project里面加入一个类  即:下面一个类  GetHDSerial.cpp <code class="hljs cs has-numbering" style= ...

  9. js实现菜单二级联动

    代码如下,以便自己以后方便查阅: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> < ...

  10. zoom:1

    zoom这个特性是IE特有的属性.   zoom:1;一般是拿来解决IE6的子元素浮动时候父元素不随着自动扩大的问题,功能相当于overflow:auto,同样也可以用height:1%来代替zoom ...