Mik*_*ker 2 android character emoji android-edittext
我想知道用户输入了多少表情符号到EditText. 如果用户只输入表情符号,并且使用 3 个或更少,我希望能够在应用程序中以更大的字体显示该字符串。
现在我确实遇到了这篇文章,它确实有助于检测字符串中是否存在表情符号,但我无法弄清楚如何计算表情符号的数量。
有谁知道如何从字符串中获取表情符号数?
int emojiCount = 0;
for (int i = 0; i < yourString.length(); i++) {
int type = Character.getType(yourString.charAt(i));
if (type == Character.SURROGATE || type == Character.OTHER_SYMBOL) {
emojiCount++;
}
}
return emojiCount/2;
Run Code Online (Sandbox Code Playgroud)
另一种方法是利用EmojiCompat. 此代码假定您EmojiCompat在应用程序启动时进行了初始化。这里的基本思想是EmojiCompat处理您的CharSequence,EmojiSpan在任何表情符号出现的地方插入实例,然后检查结果,返回EmojiSpan已处理的Spannable.
public static int getEmojiCount(CharSequence charSequence) {
int count = 0;
CharSequence processed = EmojiCompat.get().process(charSequence, 0, charSequence.length() -1, Integer.MAX_VALUE, EmojiCompat.REPLACE_STRATEGY_ALL);
if (processed instanceof Spannable) {
Spannable spannable = (Spannable) processed;
count = spannable.getSpans(0, spannable.length() - 1, EmojiSpan.class).length;
}
return count;
}
Run Code Online (Sandbox Code Playgroud)
不要忘记在 app gradle 中添加依赖项:
implementation 'androidx.emoji:emoji:1.1.0'
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3367 次 |
| 最近记录: |