android 小表情
来源:互联网 发布:网络零点女装 编辑:程序博客网 时间:2024/04/27 19:33
public class ExpressionUtil
{
/***
* 表情的正则表达式
*/
public static final String FACE_ZHENGZE = "f0[0-9]{2}|f10[0-7]";
/**
* 对spanableString进行正则判断,如果符合要求,则以表情图片代替
*/
public static void dealExpression(Context context,
SpannableString spannableString, Pattern patten, int start)
throws Exception
{
Matcher matcher = patten.matcher(spannableString);
while (matcher.find())
{
String key = matcher.group();
if (matcher.start() < start)
{
continue;
}
Field field = R.drawable.class.getDeclaredField(key);
int resId = Integer.parseInt(field.get(null).toString());
if (resId != 0)
{
Drawable drawable = context.getResources().getDrawable(resId);
drawable.setBounds(0, 0, drawable.getIntrinsicHeight() / 3,
drawable.getIntrinsicWidth() / 3);
ImageSpan imageSpan = new ImageSpan(drawable);
int end = matcher.start() + key.length();
spannableString.setSpan(imageSpan, matcher.start(), end,
Spanned.SPAN_INCLUSIVE_EXCLUSIVE);
if (end < spannableString.length())
{
dealExpression(context, spannableString, patten, end);
}
break;
}
}
}
/**获取表情*/
public static SpannableString getExpressionString(Context context,
String str, String zhengze)
{
SpannableString spannableString = new SpannableString(str);
Pattern sinaPatten = Pattern.compile(zhengze, Pattern.CASE_INSENSITIVE); // 通过传入的正则表达式来生成一个pattern
try
{
dealExpression(context, spannableString, sinaPatten, 0);
} catch (Exception e)
{
}
return spannableString;
}
/**是否存在表情*/
public static boolean isEmotion(Context context, String str, String zhengze)
{
Pattern patten = Pattern.compile(zhengze, Pattern.CASE_INSENSITIVE);
Matcher matcher = patten.matcher(str);
while (matcher.find())
{
return true;
}
return false;
}
}
{
/***
* 表情的正则表达式
*/
public static final String FACE_ZHENGZE = "f0[0-9]{2}|f10[0-7]";
/**
* 对spanableString进行正则判断,如果符合要求,则以表情图片代替
*/
public static void dealExpression(Context context,
SpannableString spannableString, Pattern patten, int start)
throws Exception
{
Matcher matcher = patten.matcher(spannableString);
while (matcher.find())
{
String key = matcher.group();
if (matcher.start() < start)
{
continue;
}
Field field = R.drawable.class.getDeclaredField(key);
int resId = Integer.parseInt(field.get(null).toString());
if (resId != 0)
{
Drawable drawable = context.getResources().getDrawable(resId);
drawable.setBounds(0, 0, drawable.getIntrinsicHeight() / 3,
drawable.getIntrinsicWidth() / 3);
ImageSpan imageSpan = new ImageSpan(drawable);
int end = matcher.start() + key.length();
spannableString.setSpan(imageSpan, matcher.start(), end,
Spanned.SPAN_INCLUSIVE_EXCLUSIVE);
if (end < spannableString.length())
{
dealExpression(context, spannableString, patten, end);
}
break;
}
}
}
/**获取表情*/
public static SpannableString getExpressionString(Context context,
String str, String zhengze)
{
SpannableString spannableString = new SpannableString(str);
Pattern sinaPatten = Pattern.compile(zhengze, Pattern.CASE_INSENSITIVE); // 通过传入的正则表达式来生成一个pattern
try
{
dealExpression(context, spannableString, sinaPatten, 0);
} catch (Exception e)
{
}
return spannableString;
}
/**是否存在表情*/
public static boolean isEmotion(Context context, String str, String zhengze)
{
Pattern patten = Pattern.compile(zhengze, Pattern.CASE_INSENSITIVE);
Matcher matcher = patten.matcher(str);
while (matcher.find())
{
return true;
}
return false;
}
}
- android 小表情
- Android开发笔记之发送小表情的实现
- 表情键盘 ---> 小思路
- android实现表情 抓取新浪表情
- android 显示表情 (二)
- android 显示表情 (一)
- android的自定义表情
- android聊天表情开发
- android Editview加入表情
- Android插入表情
- android表情实现方案
- 让android支持表情
- android 输入表情icon
- Android聊天表情开发
- android,发送表情
- android表情功能开发
- Android 输入法表情实现
- Android 之自定义表情
- URL, URI 和 URN 之间的区别
- 关于数组和指针(引用《C和指针》上的一段内容)
- VC开机启动代码
- /etc/init.d
- “同名Cookie”的分析
- android 小表情
- 如何导出帮助文档
- Java入门基础总结
- 如何终止线程的运行(C/C++)
- NOj 720项目安排
- selinux入门
- 实战jquery取复选框、单选框、下拉列表等的值
- Pseudorandom number generator
- 转换字符串格式,源字符串转换为字符串字符+连续出现次数