`
zhuqiang1002
  • 浏览: 12041 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

android 显示表情 (一)

 
阅读更多

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

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 textview显示表情图片

    然而,我们常常需要在应用程序中添加一些交互性和趣味性,比如在聊天、评论或者社交功能中显示表情图片。这就涉及到了如何在TextView中显示表情图片的技术。以下是一些关于这个主题的重要知识点: 1. **Unicode表情...

    Android实现表情功能

    在Android应用开发中,实现表情功能是提升用户体验的重要一环,尤其在聊天、社交类应用中更为常见。本文将深入探讨如何在Android平台上构建自定义的表情功能,包括表情的显示、选择、输入以及与服务器的交互等核心...

    android Emoji表情,通过自定义textview能够实现表情包在输入框中展示

    Android原生的TextView并不直接支持所有Unicode表情,因此我们需要创建一个自定义的TextView类来扩展其功能。自定义TextView的关键在于重写`onDraw()`方法,以便能够解析和绘制Unicode表情。 例如,我们可以创建一...

    Android使用Emoji表情Demo

    Android 4.4(KitKat)版本开始,系统内置了对Unicode 6.0标准的Emoji支持,这意味着大部分现代Android设备都可以显示基本的Emoji表情。然而,为了确保在所有设备上都能正确显示,开发者需要考虑不同Android版本和...

    Android仿 QQ 微信 表情

    - 设计一个可滑动或点击展开的表情面板,用于显示表情列表。面板通常分为多个类别,如常用表情、最近使用表情等。 - 实现表情面板的滚动和点击事件监听,点击表情后将其插入到输入框。 5. **表情数据库**: - ...

    Android 动态表情 显示

    在Android开发中,动态表情的显示是提升用户体验的重要一环,尤其是在社交应用或者消息传递类应用中。Android系统原生支持静态的GIF图像显示,但处理动态GIF则需要额外的工作。本教程将深入探讨如何在Android的...

    Android表情文字EmotionText

    本文将深入探讨如何在Android平台上处理和显示表情文字,包括基本概念、实现方式以及相关的技术难点。 一、表情文字概述 表情文字,也被称为颜文字或emoji,是通过特定字符组合或图形来表达情感或情绪的一种方式。...

    android EditText禁止输入法表情

    在Android开发中,`EditText` 是一个非常常用的控件,用于接收用户输入的文字。然而,在当前的移动设备环境中,许多用户喜欢使用各种表情符号来增强沟通的趣味性。但有些场景下,例如登录、注册或者数据录入等,我们...

    Android Emoticons自定义表情

    在需要显示表情键盘的Activity或Fragment中,实例化`EmoticonsKeyboard`,并在适当的时候(如用户点击表情图标)显示它。同时,确保在输入框失去焦点或用户选择其他操作时隐藏表情键盘。 6. **处理表情输入**: ...

    Android QQ 表情

    - 项目可能使用了自定义的XML资源文件来存储表情图片,或者直接使用了Android系统的emoji字体来显示表情。 2. **UI设计与布局**: - 为了实现“仿微信、QQ聊天”的效果,开发者可能使用了RecyclerView或...

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

    在Android开发中,实现类似QQ的表情输入和显示功能是一项常见的需求,特别是在聊天应用或者社交软件中。本项目通过源码的方式,为我们展示了如何在Android应用中实现这一特性。以下是关于这个话题的一些关键知识点:...

    Android 表情库源码

    - 集成到UI:将`EmojiconTextView`添加到聊天输入框,通过`EmojiPopup`在需要时显示表情面板。 **5. 源码分析** 通过阅读"emojicon"的源码,开发者可以学习到如何处理自定义View的绘制、触摸事件以及数据绑定等...

    android 人物表情的实现

    在代码中,可以通过 Picasso、Glide 或者 Android 自带的 ImageLoader 等库来加载和显示表情。 ```xml android:id="@+id/emoji_image_view" android:layout_width="wrap_content" android:layout_height="wrap_...

    android添加表情(含 socket方式)

    表情面板通常是一个GridView或者RecyclerView,显示表情图片,点击后将对应的emoji代码插入到输入框。 3. **处理表情输入**:当用户点击表情时,需要将选中的表情代码(通常是Unicode编码)插入到输入框的光标位置...

    android仿qq聊天表情

    在Android开发中,模仿QQ聊天表情功能是一项常见的需求,它涉及到UI设计、动画处理以及数据序列化等多个技术点。下面将详细阐述这个话题中的关键知识点。 1. **UI设计**: - 表情面板布局:设计一个可以展示表情的...

    安卓Emoji表情相关-Android实现表情输入.rar

    这个压缩包文件"安卓Emoji表情相关-Android实现表情输入.rar"可能包含了一个示例项目,帮助开发者了解和学习如何在Android应用中集成和使用Emoji表情。尽管描述中提到无法验证所有内容,但我们可以从这个主题中探讨...

    Android 表情功能的实现

    在Android应用开发中,实现类似QQ的表情功能是一项常见的需求,特别是在聊天、社交或者论坛类的应用中。QQ表情功能的成功在于其丰富的表情库和便捷的使用方式,为用户提供了一种直观且富有表现力的沟通手段。下面...

    Android 表情开发

    - 设计一个表情面板布局,可以是GridView、RecyclerView或者其他适合展示多行多列的视图,用于显示表情图片。 - 在布局中,为每个表情设置点击事件,点击时获取对应的表情图片或Unicode值。 3. **点击menu键插入...

    Android 模仿手机QQ表情输入和表情预览框

    3. 自定义键盘:可以创建一个自定义软键盘,显示表情按钮,点击后插入相应的表情代码。 4. 表情面板:创建一个可滚动的面板,显示所有可用的表情,用户可以选择并插入到输入框。 5. 事件处理:监听输入框的文本变化...

Global site tag (gtag.js) - Google Analytics