以前一直好奇QQ的输入框里面是如何出现表情的,今天看了下这个,心中发出“原来是这样啊”的感叹。

通常情况下,我们都是使用字符串类型的变量,直接放置在TextView.setText()的参数里面的。这样只能单纯的输出字符串。如果要给TextView加上特殊的文本效果,就要使用SpannableString这个类了。

用法如下:

new一个SpannableString对象,将要显示的字符串作为构造方法的参数传入。

调用SpannableString.setSpan(Object, int, int, int)方法进行设置。第一个参数为需要设定的样式,有很多个类可以选择,都在这里啦:http://developer.android.com/reference/android/text/style/CharacterStyle.html

官方文档上面那里的直接子类和间接子类都是可以用的样式。

第二参数是开始的位置,0表示第一个字符

第三个参数是结束的位置

第四个参数是一个表示替换的位置是否会影响开头和结尾,诶……我试了下发现没什么变化呢……

然后就是把这个SpannableString对象传给TextView.setText()方法的参数就好了。

代码如下:

 public class MainActivity extends Activity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);TextView t=(TextView) findViewById(R.id.textview);SpannableString ss=new SpannableString("abcdefg");ImageSpan s=new ImageSpan(this,R.drawable.ic_launcher);ss.setSpan(s, 0, 5,  Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);t.setText(ss);}}

QQ/微信 聊天表情显示原理相关推荐

  1. html 表情转换器,HTML5高仿微信聊天、微信聊天表情|对话框|编辑器功能

    之前做过一版h5微信聊天移动端,这段时间闲来无事就整理了下之前项目,又重新在原先的那版基础上升级了下,如是就有了现在的h5仿微信聊天高仿版,新增了微聊.通讯录.探索.我四个模块 左右触摸滑屏切换,聊天 ...

  2. html5微信超链接对话窗口,HTML5高仿微信聊天、微信聊天表情|对话框|编辑器功能...

    之前做过一版h5微信聊天移动端,这段时间闲来无事就整理了下之前项目,又重新在原先的那版基础上升级了下,如是就有了现在的h5仿微信聊天高仿版,新增了微聊.通讯录.探索.我四个模块 左右触摸滑屏切换,聊天 ...

  3. iOS开源组件__仿写QQ/微信聊天键盘(表情,问题,输入框)纯代码,无依赖

    前言 1.由于项目需求,需要一个类似QQ/微信的聊天键盘,包括语音,emoji和发送图片,文件,位置,网上找了一番,要不功能不够完善,要不依赖太多,于是干脆自己写一个(在使用过程中如果发现什么问题或有 ...

  4. h5仿微信聊天(高仿版)、微信聊天表情|对话框|编辑器

    之前做过一版h5微信聊天移动端,这段时间闲来无事就整理了下之前项目,又重新在原先的那版基础上升级了下,如是就有了现在的h5仿微信聊天高仿版,新增了微聊.通讯录.探索.我四个模块 左右触摸滑屏切换,聊天 ...

  5. android 仿微信聊天气泡显示图片,怎么实现微信聊天时的气泡图(一)

    首先,微信聊天的时候气泡图是什么样呢?上图, , 要实现这种气泡图,要怎么做? 主要的就是实现那个小三角吗?首先想到的肯定是使用伪元素+定位,对!!! 那我们来试一下,上代码点这里,这样很轻松的实现了 ...

  6. java仿QQ微信聊天室

    话不多说,先上图                                   即时通信系统:可以完成群聊.私人聊天,实时发送和显示聊天信息,完成好友列表,进一步可以带表情,附件发送,聊天信息的 ...

  7. AndroidRichText 让Textview轻松的支持富文本(图像ImageSpan、点击效果等等类似QQ微信聊天)...

    代码地址:https://github.com/Luction/AndroidRichText AndroidRichText帮助实现像QQ,微信一样的,一个TextView里既有文字又有表情又有图片 ...

  8. JavaScript Emoji 表情库_js 类似于qq微信的表情库

    摘要: emoji就是表情符号,来自日语词汇"絵文字"(假名为"えもじ",读音即emoji).emoji的创造者是日本人栗田穰崇(Shigetaka Kurit ...

  9. android 仿微信聊天气泡显示图片,实现仿照微信聊天气泡里显示图片效果的自定义View...

    第一部分是自定义的气泡效果的View,代码如下 public class BitmapShapeView extends View { private Paint mPaint; private Pa ...

  10. android 仿微信聊天气泡显示图片,仿微信聊天气泡 图片尖角 按下变暗

    实现微信气泡图片尖角 //-------------gen corner bitmap flow------------------------ //load the bg: .9.png which ...

最新文章

  1. ajax异步传输数据时return返回总是undefined(转载)
  2. Dubbo的使用及原理浅析.
  3. 恕我直言,HttpClient 你不一定会用
  4. mysql表分区和表空间_mysql分表和分区的区别浅析
  5. mysql处理高并发,防止库存超卖
  6. 今年美国广告程序化购买支出将超252亿美元
  7. 小程序中使用threejs
  8. html元素一行显示不完收缩_这些常用的HTML标签,你还不知道吗?
  9. spring boot整合redis实现统计访问量
  10. [Redis6]新数据类型_Geospatial
  11. 为了让你的网页能在更多的服务器上正常地显示,还是加上“SET NAMES UTF8”吧...
  12. python数字运算程序_python03 一些简单的数字运算
  13. USB2.0学习笔记连载(四):安装Cypress官网套件
  14. RESTClient 使用,一个小巧方便的插件
  15. python爬虫——爬取汽车之家新闻
  16. JAVA面试常考系列七
  17. 如何在Microsoft Outlook中使用Gmail
  18. linux中reboot函数在哪,reboot()函数 Unix/Linux
  19. idea svn IP地址更换方法
  20. 找工作时PLC工程师会哪些技能工资更高呢?

热门文章

  1. antd tooltip 修改样式
  2. 终南山--SpringBoot系列之Spring Data Jpa连表查询和分页
  3. 龙芯芯片CPU的产品路线说明
  4. cd rom是计算机的,CD-ROM是什么意思,CD-ROM是什么意思
  5. 计算机word上下左右边距,Word页边距调整设置(上下左右边距,2003-2013)
  6. 分享11个网页游戏和9个黑客源码,总有一款适合你
  7. Vue.js:事件修饰符stop,once,prevent的使用
  8. twitter跳过手机验证_twitter跳过手机验证_twitter手机验证不了_攻略
  9. php搬家问题,PHPWIND 搬家教程 一看就会
  10. Qt版权符号显示问题