微信怎么发送居中表情表情

您的当前位置:>> >教你如何发表情,坦克世界表情代码一览
教你如何发表情,坦克世界表情代码一览
14:25:23 条|来源:多玩坦克世界|作者:oicqbs1|
这些符号都是直接在输入框打字一样的输入就可以了!表情默认都是在英文标点状态下,切换到了搜狗输入法等可能就打不出来,理论上"="和":"是互通的.
  不知不觉在也混了一段日子,好奇心害死猫,当哥第一次看到别人战队收人广告时(虽然反感广告)看到了一只***的鸡!
  我嘞个去,好奇妙的东西,输入框也没有表情,经过不懈的努力才知道这游戏原来也有表情这种东西,以下是我收集整理的,暂时只有代码,以后会补上图片的,欢迎各位看官支持,补充!
  --------------------------------------------------------------------------
  注意:这些符号都是直接在输入框打字一样的输入就可以了!表情默认都是在英文标点状态下,切换到了搜狗输入法等可能就打不出来,理论上&=&和&:&是互通的.
  =| &------------ 憋嘴
  ;) &------------ 眨眼睛
  =) &------------ 微笑
  =( &------------ 不高兴
  =\ &------------ 歪嘴
  =o &------------ 吃惊(O这个是字母O,不是零,大小写不一样,貌似嘴巴也不一样)
  =P &------------ 吐舌头(P是大写字母)
添加到收藏夹
看完本文后有何评价?
已有0人评价,点选表情后可看到其他玩家的表态。
class="btn">[与更多人共享]
友情链接: |22608人阅读
Android学习笔记(20)
在自己做一个聊天应用练习的时候,需要用到表情,于是就想着模仿一下QQ表情,图片资源完全copy的QQ.apk,解压就可以得到,这里不细说。
下面将该应用中的表情模块功能抽离出来,以便自己以后复习回顾。。
先看一下效果图:
首先进入界面:(完全仿照QQ)
点击一下上面的表情图标:
选择一些表情,输入一些文字混合:
点击发送:
可以看到文字和表情图片都一起显示出来了。
下面列出一些关键代码:
表情工具类ExpressionUtil:
public class ExpressionUtil {
* 对spanableString进行正则判断,如果符合要求,则以表情图片代替
* @param context
* @param spannableString
* @param patten
* @param start
* @throws SecurityException
* @throws NoSuchFieldException
* @throws NumberFormatException
* @throws IllegalArgumentException
* @throws IllegalAccessException
public static void dealExpression(Context context,SpannableString spannableString, Pattern patten, int start) throws SecurityException, NoSuchFieldException, NumberFormatException, IllegalArgumentException, IllegalAccessException {
Matcher matcher = patten.matcher(spannableString);
while (matcher.find()) {
String key = matcher.group();
if (matcher.start() & start) {
Field field = R.drawable.class.getDeclaredField(key);
int resId = Integer.parseInt(field.get(null).toString());
//通过上面匹配得到的字符串来生成图片资源id
if (resId != 0) {
Bitmap bitmap = BitmapFactory.decodeResource(context.getResources(), resId);
ImageSpan imageSpan = new ImageSpan(bitmap);
//通过图片资源id来得到bitmap,用一个ImageSpan来包装
int end = matcher.start() + key.length();
//计算该图片名字的长度,也就是要替换的字符串的长度
spannableString.setSpan(imageSpan, matcher.start(), end, Spannable.SPAN_INCLUSIVE_EXCLUSIVE); //将该图片替换字符串中规定的位置中
if (end & spannableString.length()) {
//如果整个字符串还未验证完,则继续。。
dealExpression(context,spannableString,
patten, end);
* 得到一个SpanableString对象,通过传入的字符串,并进行正则判断
* @param context
* @param str
public static SpannableString getExpressionString(Context context,String str,String zhengze){
SpannableString spannableString = new SpannableString(str);
Pattern sinaPatten = pile(zhengze, Pattern.CASE_INSENSITIVE);
//通过传入的正则表达式来生成一个pattern
dealExpression(context,spannableString, sinaPatten, 0);
} catch (Exception e) {
Log.e(&dealExpression&, e.getMessage());
return spannableS
在显示聊天页面的list的适配器中,我们需要做如下的显示,即调用上面工具类的方法:
SimpleChatAdapter中的内部类ViewHolder:
private class ViewHolder{
RelativeLayout chat_
public ViewHolder(View convertView){
chat_layout=(RelativeLayout) convertView.findViewById(R.id.team_singlechat_id_listiteam);
image=(ImageView) convertView.findViewById(R.id.team_singlechat_id_listiteam_headicon);
text=(TextView) convertView.findViewById(R.id.team_singlechat_id_listiteam_message);
public void setData(MessageInfo msg){
RelativeLayout.LayoutParams rl_chat_left=((RelativeLayout.LayoutParams)chat_layout.getLayoutParams());
RelativeLayout.LayoutParams rl_tv_msg_left=((RelativeLayout.LayoutParams)text.getLayoutParams());
RelativeLayout.LayoutParams rl_iv_headicon_left=((RelativeLayout.LayoutParams)image.getLayoutParams());
if(!DicqConstant.DEFAULTMAC.equalsIgnoreCase(msg.getUsermac())){ //根据本地的mac地址来判断该条信息是属于本人所说还是对方所说
//如果是自己说的,则显示在右边;如果是对方所说,则显示在左边
rl_chat_left.addRule(RelativeLayout.ALIGN_PARENT_LEFT,-1);
rl_chat_left.addRule(RelativeLayout.ALIGN_PARENT_RIGHT,0);
rl_iv_headicon_left.addRule(RelativeLayout.ALIGN_PARENT_LEFT,-1);
rl_iv_headicon_left.addRule(RelativeLayout.ALIGN_PARENT_RIGHT,0);
rl_tv_msg_left.addRule(RelativeLayout.RIGHT_OF,R.id.team_singlechat_id_listiteam_headicon);
rl_tv_msg_left.addRule(RelativeLayout.LEFT_OF,0);
text.setBackgroundResource(R.drawable.balloon_l_selector);
rl_chat_left.addRule(RelativeLayout.ALIGN_PARENT_LEFT,0);
rl_chat_left.addRule(RelativeLayout.ALIGN_PARENT_RIGHT,-1);
rl_iv_headicon_left.addRule(RelativeLayout.ALIGN_PARENT_LEFT,0);
rl_iv_headicon_left.addRule(RelativeLayout.ALIGN_PARENT_RIGHT,-1);
rl_tv_msg_left.addRule(RelativeLayout.RIGHT_OF,0);
rl_tv_msg_left.addRule(RelativeLayout.LEFT_OF,R.id.team_singlechat_id_listiteam_headicon);
text.setBackgroundResource(R.drawable.balloon_r_selector);
image.setImageResource(PrortaitUtils.conversionIdToRes(msg.getProtrait()));
//设置头像
String str = msg.getMsg();
//消息具体内容
String zhengze = &f0[0-9]{2}|f10[0-7]&;
//正则表达式,用来判断消息内是否有表情
SpannableString spannableString = ExpressionUtil.getExpressionString(context, str, zhengze);
text.setText(spannableString);
} catch (NumberFormatException e) {
e.printStackTrace();
} catch (SecurityException e) {
e.printStackTrace();
} catch (IllegalArgumentException e) {
e.printStackTrace();
关于表情弹出框的实现如下:
MainActivity:
* 创建一个表情选择对话框
private void createExpressionDialog() {
builder = new Dialog(MainActivity.this);
GridView gridView = createGridView();
builder.setContentView(gridView);
builder.setTitle(&默认表情&);
builder.show();
gridView.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView&?& arg0, View arg1, int arg2,
long arg3) {
Bitmap bitmap =
bitmap = BitmapFactory.decodeResource(getResources(), imageIds[arg2 % imageIds.length]);
ImageSpan imageSpan = new ImageSpan(MainActivity.this, bitmap);
String str =
if(arg2&10){
str = &f00&+arg2;
}else if(arg2&100){
str = &f0&+arg2;
str = &f&+arg2;
SpannableString spannableString = new SpannableString(str);
spannableString.setSpan(imageSpan, 0, 4, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
edit.append(spannableString);
builder.dismiss();
* 生成一个表情对话框中的gridview
private GridView createGridView() {
final GridView view = new GridView(this);
List&Map&String,Object&& listItems = new ArrayList&Map&String,Object&&();
//生成107个表情的id,封装
for(int i = 0; i & 107; i++){
Field field = R.drawable.class.getDeclaredField(&f00& + i);
int resourceId = Integer.parseInt(field.get(null).toString());
imageIds[i] = resourceId;
}else if(i&100){
Field field = R.drawable.class.getDeclaredField(&f0& + i);
int resourceId = Integer.parseInt(field.get(null).toString());
imageIds[i] = resourceId;
Field field = R.drawable.class.getDeclaredField(&f& + i);
int resourceId = Integer.parseInt(field.get(null).toString());
imageIds[i] = resourceId;
} catch (NumberFormatException e) {
e.printStackTrace();
} catch (SecurityException e) {
e.printStackTrace();
} catch (IllegalArgumentException e) {
e.printStackTrace();
} catch (NoSuchFieldException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
Map&String,Object& listItem = new HashMap&String,Object&();
listItem.put(&image&, imageIds[i]);
listItems.add(listItem);
SimpleAdapter simpleAdapter = new SimpleAdapter(this, listItems, R.layout.team_layout_single_expression_cell, new String[]{&image&}, new int[]{R.id.image});
view.setAdapter(simpleAdapter);
view.setNumColumns(6);
view.setBackgroundColor(Color.rgb(214, 211, 214));
view.setHorizontalSpacing(1);
view.setVerticalSpacing(1);
view.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT,LayoutParams.WRAP_CONTENT));
view.setGravity(Gravity.CENTER);
Demo下载:
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:251851次
积分:2889
积分:2889
排名:第10362名
原创:47篇
转载:20篇
评论:125条
(1)(1)(4)(7)(5)(6)(2)(7)(13)(21)微信怎么发送收藏的表情
微信收藏的表情怎么发出去
分享是一种美德。当我们想把自己在朋友圈里的收藏分享发送给小伙伴们的时候,该怎么操作呢?如果你不知道微信怎么发送收藏,那么就来看看吧!
1.打开你要分享收藏给TA的那位好友
2.点击右下角的【+】图标,如下图
3.选择【我的收藏】,
4.找到需要分享的收藏,点击,如下图
5.选择【发送】即可,如下图
以上就是56手机小编带来的攻略了,想了解更多资讯,请大家关注56手机下载网。
相关游戏推荐
下载地址:
下载地址:
下载地址:
cdec大师赛积分排名查询
cdec联赛排名查询
不要不要的是什么意思
18346人推荐
6.7分聊天工具
21276人推荐
8.0分社区交友
3755人推荐
8.0分应用软件
4618人推荐
8.0分游戏娱乐
5222人推荐
5.5分社区交友
6186人推荐
8.0分软件辅助
7173人推荐
5.5分应用软件
8140人推荐
5.5分聊天工具
9922605人推荐
9.3分视频播放
10650175人推荐
8.8分生活应用
1186人推荐
8.0分软件辅助
2755人推荐
8.0分应用软件
31276人推荐
8.0分社区交友
4618人推荐
8.0分游戏娱乐
8.0分通讯增强
68346人推荐
6.7分聊天工具
7102人推荐
5.5分社区交友
5.5分软件辅助
9116人推荐
10.0分视频播放
101550人推荐
10.0分学习帮助

参考资料

 

随机推荐