android 显示表情 (一)

原创 2012年03月27日 11:43:45

一般的解决方案是,形如:

     character=/:)

     file=2.gif

这样的配置文件。

那么可以把图片和表情符号的对应关系保存在一个有序的LinkedHashMap中去。

用SpannableString来处理这种字符串

//解析消息内容
SpannableString icontent = new SpannableString(content);


处理icontent的代码如下:

    public SpannableString parseContent(SpannableString icontent, String content)
        throws Exception{
        HashMap<String, String> map = BootApp.getImageMap();
        String str[] = content.split("/");
        String key = null;
        String newKey = null;
        int length = 0;
        for (int i = 0; i < str.length; i++){
            key = str[i];
            int keyLength = 0;
            if(!StringUtils.isEmpty(key)){
                keyLength = key.length();
            }
            if (1 == keyLength){
                if (map.containsKey(key))
                {
                    newKey = key;
                }
            }
            else{
                if(!StringUtils.isEmpty(key)){
                    for (int j = 1; j < key.length() + 1; j++)
                    {
                        String s = ("/" + key.substring(0, j)).toString();
                        if (map.containsKey(s))
                        {
                            newKey = key.substring(0, j);
                            break;
                        }
                    }}}
            if (newKey != null){
                String imageId = BootApp.getImageMap().get("/" + newKey);
                Field field = R.drawable.class.getDeclaredField(imageId);
                int resourceId = Integer.parseInt(field.get(null).toString());
                Bitmap bitmap = BitmapFactory.decodeResource(Global.getContext().getResources(), resourceId);
                ImageSpan imageSpan = new ImageSpan(Global.getContext(), bitmap);
                icontent.setSpan(imageSpan,
                    length,
                    newKey.length()+length+1,
                    Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
                length+=keyLength+1;
            }
            else{
                length+=keyLength;
            }}
        return icontent;}

返回一个已经把字符串和图片夹杂在一起的SpannableString字符串setText给一个用于显示的TextView

android表情编码与解码

很多时候我们和服务器交互或者前端将文本保存到文件的时候,涉及一些带有表情符号的文本,因为存储的原因,要进行编码和解码过程,否则我们可能无法取出或者存入,或者是乱码。(一个简单的例子) xml ...

Android 表情功能的完整处理方案

概述 1.原理和实现思路 2.表情图片显示 3.表情面板 4.表情的输入框插入和删除 5.表情添加脚本 Android中表情功能,一般都不是用ImageView...

Android 表情面板的展示和表情的显示

前言 在Android项目中由于是社交类的项目,所以里面用到了表情,表情是emoji表情,所以实现了之后,弄个demo分享一下,主要实现了表情的选择和显示,只是一个demo,剩下的靠大家自己去扩展 国...

Android 表情功能的完整处理方案

概述 1.原理和实现思路 2.表情图片显示 3.表情面板 4.表情的输入框插入和删除 5.表情添加脚本 Android中表情功能,一般都不是用ImageView...

Delphi7高级应用开发随书源码

  • 2003年04月30日 00:00
  • 676KB
  • 下载

emoji 表情 插入mysq后 变成问号

转载自:http://bbs.csdn.net/topics/390765345 作者:yongheng20101201 utf8mb4兼容utf8,且比utf8能表示更多的字符. 解决方案:...

IOS或者Android传递 含有emoji表情的文本到服务器之php处理方式

微信接口中对于emoji表情使用的是UTF-8的二进制字符串,并没有解码,表现就是当收到微信端用户发来的emoji表情时,显示为一个方块型「」或是无法显示的字符,这时就需要对其进行转码。同理在向微信...

emoji表情显示问号?

公司项目有用到emoji表情,然而发送到服务器后获取显示为问号,搜了一下,发现emoji字符是4字节的utf-16(utf-16有2字节和4字节两种编码),一般数据库才用的utf-8,并且最大只允许3...

Android 仿QQ表情(输入和显示)

  • 2016年03月27日 00:46
  • 2.5MB
  • 下载

QQ聊天之Android显示Gif ——在TextView中添加动态表情

好久没有对这一系列进行更新了,不知道各位亲的Android功力有没有更上一层楼?本来并没有打算在这段时间发表新的博客,但是由于这一两天找到了一个能够让Android上显示Gif图片的方法,这样一来,寒...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:android 显示表情 (一)
举报原因:
原因补充:

(最多只允许输入30个字)