android 显示表情符号,在Android中显示表情符号
我认为这将是更有用的建立Spannable。
private static final Factory spannableFactory = Spannable.Factory
.getInstance();
private static final Map emoticons = new HashMap();
static {
addPattern(emoticons, ":)", R.drawable.emo_im_happy);
addPattern(emoticons, ":-)", R.drawable.emo_im_happy);
// ...
}
private static void addPattern(Map map, String smile,
int resource) {
map.put(Pattern.compile(Pattern.quote(smile)), resource);
}
public static boolean addSmiles(Context context, Spannable spannable) {
boolean hasChanges = false;
for (Entry entry : emoticons.entrySet()) {
Matcher matcher = entry.getKey().matcher(spannable);
while (matcher.find()) {
boolean set = true;
for (ImageSpan span : spannable.getSpans(matcher.start(),
matcher.end(), ImageSpan.class))
if (spannable.getSpanStart(span) >= matcher.start()
&& spannable.getSpanEnd(span) <= matcher.end())
spannable.removeSpan(span);
else {
set = false;
break;
}
if (set) {
hasChanges = true;
spannable.setSpan(new ImageSpan(context, entry.getValue()),
matcher.start(), matcher.end(),
Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
}
}
}
return hasChanges;
}
public static Spannable getSmiledText(Context context, CharSequence text) {
Spannable spannable = spannableFactory.newSpannable(text);
addSmiles(context, spannable);
return spannable;
}
Actualy this code based on source from native from native Html class。
编辑:更新后的版本有戏剧性的速度提升。
android 显示表情符号,在Android中显示表情符号相关推荐
- android 调出键盘表情_如何在Android的G板键盘中搜索表情符号和GIF | MOS86
老实说,这里是1010mh1112 GIF和表情符号是新形式的沟通.像他们似乎愚蠢的,他们以某种方式添加了一个额外的层次,我们与朋友和家人通过文本或即时消息交互的方式,否则可能会干燥.虽然表情符号长期 ...
- VS code解决Latex不显示参考文献,正文中显示[?]的问题
编译后显示,同时不显示参考文献: 解决方法: 编译一遍,确保与.tex同一目录文件夹中有.aux文件 点击vscode顶部导航栏 terminal -> new terminal 导出控制台 输 ...
- php中如何显示blob,在PHP中显示(LONGBLOB)内容
我试图显示存储在我的LONGBLOB中的PDF文件.当我执行代码时,我只会得到文件的名称.我想在查看器中显示PDF文件. 有人知道我该如何解决吗? 这是我的脚本: $tpurchase_id = $_ ...
- linux 显示隐藏文件_Mac Finder中显示和隐藏文件的方法
Mac Finder中显示和隐藏文件的方法 按照以下步骤查看Mac上Finder中的隐藏文件. 打开Finder窗口 现在在左栏中,点击 "设备 "下的Mac名称. 选择并点击启动 ...
- Android gridview 嵌套在listview中显示不全问题
在开发中,常常会遇到这样的问题,需要在listview中去嵌套一个gridview. 但是用原生的gridview并不能满足要求,因为会有显示不全的问题.所以自定义一个属于自己的gridview就可以 ...
- android+多种行视图,android – 在react-native列表视图中显示多种类型行的正确方法是什么?...
所以我们想要的是: 在iOS中,我们可以为每个单元格类型使用多个cellIdentifier来创建高性能列表视图. 我现在拥有的是什么 render() { const dataBlob = [ { ...
- android笔记之在WebView中显示ProgressBar的两种方法
http://blog.csdn.net/liuzhidong123/article/details/6450334 本文基于Creative Commons Attribution 2.5 Chin ...
- 在html中不显示内容是,网页中显示的内容在源文件中找不到是什么原因_html/css_WEB-ITnose...
源文件中只显示主页相关的源码,单词的解释都不显示 回复讨论(解决方案) 因为是ajax获取的 javascript运算的结果在html中当然没有. 可以在dom结构中查看. 因为是ajax获取的 aj ...
- java数组显示_Java 1.5中显示数组
很长一段时间以来,Java编程人员都自己编写方法来打印数组的内容.这是因为JDK没有提供一种将数组转换为字符串值的简便方法.更糟糕的是,一个字符串数组总是从它的toString方法中返回如下信息: [ ...
- jupyter 服务器 显示不完全,Jupyter中显示DataFrame的行显示不完全
vue + element-ui 的级联选择器 el-cascader 样式不显示 vue + element-ui 的级联选择器 el-cascader 样式不显示 使用 vue + element ...
最新文章
- 2022-2028年中国IT外包市场投资分析及前景预测报告
- Datawhale组队学习周报(第021周)
- DLL(MFC)通过Window消息向C#程序传递数据
- python处理大量excel数据-使用python将大量数据导出到Excel中的小技巧分享
- 使用DOM4J读取和维护XML数据
- 如果是你你会如何重新设计和定义维基百科(wikipedia)?
- 计算机视觉论文-2021-06-30
- VS Code解决Go相关工具无法安装问题
- java core 作者_java core dump分析实战
- linux对perl脚本加密,对Perl代码进行编译与加密
- 区块链 数据读权限 设计方案
- 10年老程序员:到底是学前端好还是后端好?
- 软件版本GA、RC、beta等含义
- iOS-使用CoreLocation定位
- Q上多项式可约性深化定理
- TSINGSEE青犀视频开发安全帽智能检测识别经验分享
- 激光测距仪工作模式及维保——TFN BKD系列双目激光测距仪
- C语言打印cav,最近大热的Cav Empt(C.E),你了解?
- 如何选购台式电脑和笔记本?购买时应注意什么
- JS闭包函数和回调函数