android禁止EditText输入emoji表情图片
2017-02-27 15:30
411 查看
方法一:给EditText设置过滤器,这样在输入emoji的时候就没有反应
[java] view
plain copy
private static InputFilter emojiFilter = new InputFilter() {
Pattern emoji = Pattern.compile(
"[\ud83c\udc00-\ud83c\udfff]|[\ud83d\udc00-\ud83d\udfff]|[\u2600-\u27ff]",
Pattern.UNICODE_CASE | Pattern.CASE_INSENSITIVE);
@Override
public CharSequence filter(CharSequence source, int start, int end, Spanned dest,
int dstart,
int dend) {
Matcher emojiMatcher = emoji.matcher(source);
if (emojiMatcher.find()) {
return "";
}
return null;
}
};
public static InputFilter[] emojiFilters = {emojiFilter};
editText.setFilters(emojiFilters);\
方法二:检测输入的内容中是否含有emoji
[java] view
plain copy
/** * 检测是否有emoji表情 * @param source * @return */
public static boolean containsEmoji(String source) { //两种方法限制emoji
int len = source.length();
for (int i = 0; i < len; i++) {
char codePoint = source.charAt(i);
if (!isEmojiCharacter(codePoint)) { //如果不能匹配,则该字符是Emoji表情
return true;
}
}
return false;
}
/** * 判断是否是Emoji * @param codePoint 比较的单个字符 * @return */
private static boolean isEmojiCharacter(char codePoint) {
return (codePoint == 0x0) || (codePoint == 0x9) || (codePoint == 0xA) || (codePoint == 0xD)
|| ((codePoint >= 0x20) && (codePoint <= 0xD7FF))
|| ((codePoint >= 0xE000) && (codePoint <= 0xFFFD))
|| ((codePoint >= 0x10000) && (codePoint <= 0x10FFFF));
}
[java] view
plain copy
private static InputFilter emojiFilter = new InputFilter() {
Pattern emoji = Pattern.compile(
"[\ud83c\udc00-\ud83c\udfff]|[\ud83d\udc00-\ud83d\udfff]|[\u2600-\u27ff]",
Pattern.UNICODE_CASE | Pattern.CASE_INSENSITIVE);
@Override
public CharSequence filter(CharSequence source, int start, int end, Spanned dest,
int dstart,
int dend) {
Matcher emojiMatcher = emoji.matcher(source);
if (emojiMatcher.find()) {
return "";
}
return null;
}
};
public static InputFilter[] emojiFilters = {emojiFilter};
editText.setFilters(emojiFilters);\
方法二:检测输入的内容中是否含有emoji
[java] view
plain copy
/** * 检测是否有emoji表情 * @param source * @return */
public static boolean containsEmoji(String source) { //两种方法限制emoji
int len = source.length();
for (int i = 0; i < len; i++) {
char codePoint = source.charAt(i);
if (!isEmojiCharacter(codePoint)) { //如果不能匹配,则该字符是Emoji表情
return true;
}
}
return false;
}
/** * 判断是否是Emoji * @param codePoint 比较的单个字符 * @return */
private static boolean isEmojiCharacter(char codePoint) {
return (codePoint == 0x0) || (codePoint == 0x9) || (codePoint == 0xA) || (codePoint == 0xD)
|| ((codePoint >= 0x20) && (codePoint <= 0xD7FF))
|| ((codePoint >= 0xE000) && (codePoint <= 0xFFFD))
|| ((codePoint >= 0x10000) && (codePoint <= 0x10FFFF));
}
相关文章推荐
- android禁止EditText输入emoji表情图片
- Android EditText 不能输入 手机输入法自带 Emoji 表情,为EditText 添加输入限制
- Android EditText 禁止输入表情
- Android进阶之路 - EditText禁止输入表情符号
- Android禁止输入表情符号的EditText
- android EditText 禁止表情输入
- 【Android】【输入校验】输入框(EditText)过滤 Emoji 表情
- android EditText控件如何禁止输入内容
- Android之TextView、EditText控件显示表情图片
- android EditText控件如何禁止输入内容
- android edittext 限制输入符号表情
- 【Android】【输入校验】输入框(EditText)过滤 Emoji 表情
- android EditText控件如何禁止输入内容
- Android开发(28)--EditText实现输入QQ表情图像
- android EditText控件如何禁止往里面输入内容?
- EditText禁止输入表情
- 【Android】【输入校验】输入框(EditText)过滤 Emoji 表情
- android editText 插入表情,或者是图片
- android在EditText 中插入表情图片
- Android EditText 在光标处插入,删除内容(例如可用于表情文字输入控件)