一般的解决方案是,形如:
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
分享到:
相关推荐
然而,我们常常需要在应用程序中添加一些交互性和趣味性,比如在聊天、评论或者社交功能中显示表情图片。这就涉及到了如何在TextView中显示表情图片的技术。以下是一些关于这个主题的重要知识点: 1. **Unicode表情...
在Android应用开发中,实现表情功能是提升用户体验的重要一环,尤其在聊天、社交类应用中更为常见。本文将深入探讨如何在Android平台上构建自定义的表情功能,包括表情的显示、选择、输入以及与服务器的交互等核心...
Android原生的TextView并不直接支持所有Unicode表情,因此我们需要创建一个自定义的TextView类来扩展其功能。自定义TextView的关键在于重写`onDraw()`方法,以便能够解析和绘制Unicode表情。 例如,我们可以创建一...
Android 4.4(KitKat)版本开始,系统内置了对Unicode 6.0标准的Emoji支持,这意味着大部分现代Android设备都可以显示基本的Emoji表情。然而,为了确保在所有设备上都能正确显示,开发者需要考虑不同Android版本和...
- 设计一个可滑动或点击展开的表情面板,用于显示表情列表。面板通常分为多个类别,如常用表情、最近使用表情等。 - 实现表情面板的滚动和点击事件监听,点击表情后将其插入到输入框。 5. **表情数据库**: - ...
在Android开发中,动态表情的显示是提升用户体验的重要一环,尤其是在社交应用或者消息传递类应用中。Android系统原生支持静态的GIF图像显示,但处理动态GIF则需要额外的工作。本教程将深入探讨如何在Android的...
本文将深入探讨如何在Android平台上处理和显示表情文字,包括基本概念、实现方式以及相关的技术难点。 一、表情文字概述 表情文字,也被称为颜文字或emoji,是通过特定字符组合或图形来表达情感或情绪的一种方式。...
在Android开发中,`EditText` 是一个非常常用的控件,用于接收用户输入的文字。然而,在当前的移动设备环境中,许多用户喜欢使用各种表情符号来增强沟通的趣味性。但有些场景下,例如登录、注册或者数据录入等,我们...
在需要显示表情键盘的Activity或Fragment中,实例化`EmoticonsKeyboard`,并在适当的时候(如用户点击表情图标)显示它。同时,确保在输入框失去焦点或用户选择其他操作时隐藏表情键盘。 6. **处理表情输入**: ...
- 项目可能使用了自定义的XML资源文件来存储表情图片,或者直接使用了Android系统的emoji字体来显示表情。 2. **UI设计与布局**: - 为了实现“仿微信、QQ聊天”的效果,开发者可能使用了RecyclerView或...
在Android开发中,实现类似QQ的表情输入和显示功能是一项常见的需求,特别是在聊天应用或者社交软件中。本项目通过源码的方式,为我们展示了如何在Android应用中实现这一特性。以下是关于这个话题的一些关键知识点:...
- 集成到UI:将`EmojiconTextView`添加到聊天输入框,通过`EmojiPopup`在需要时显示表情面板。 **5. 源码分析** 通过阅读"emojicon"的源码,开发者可以学习到如何处理自定义View的绘制、触摸事件以及数据绑定等...
在代码中,可以通过 Picasso、Glide 或者 Android 自带的 ImageLoader 等库来加载和显示表情。 ```xml android:id="@+id/emoji_image_view" android:layout_width="wrap_content" android:layout_height="wrap_...
表情面板通常是一个GridView或者RecyclerView,显示表情图片,点击后将对应的emoji代码插入到输入框。 3. **处理表情输入**:当用户点击表情时,需要将选中的表情代码(通常是Unicode编码)插入到输入框的光标位置...
在Android开发中,模仿QQ聊天表情功能是一项常见的需求,它涉及到UI设计、动画处理以及数据序列化等多个技术点。下面将详细阐述这个话题中的关键知识点。 1. **UI设计**: - 表情面板布局:设计一个可以展示表情的...
这个压缩包文件"安卓Emoji表情相关-Android实现表情输入.rar"可能包含了一个示例项目,帮助开发者了解和学习如何在Android应用中集成和使用Emoji表情。尽管描述中提到无法验证所有内容,但我们可以从这个主题中探讨...
在Android应用开发中,实现类似QQ的表情功能是一项常见的需求,特别是在聊天、社交或者论坛类的应用中。QQ表情功能的成功在于其丰富的表情库和便捷的使用方式,为用户提供了一种直观且富有表现力的沟通手段。下面...
- 设计一个表情面板布局,可以是GridView、RecyclerView或者其他适合展示多行多列的视图,用于显示表情图片。 - 在布局中,为每个表情设置点击事件,点击时获取对应的表情图片或Unicode值。 3. **点击menu键插入...
3. 自定义键盘:可以创建一个自定义软键盘,显示表情按钮,点击后插入相应的表情代码。 4. 表情面板:创建一个可滚动的面板,显示所有可用的表情,用户可以选择并插入到输入框。 5. 事件处理:监听输入框的文本变化...