在EditText插入表情,点击发送按钮,将qq表情显示在TextView中;

[mw_shl_code=java,true]public class EditTextActivity extends Activity implements OnClickListener {
private TextView showText, insetBtn;
private EditText edit;
private Button okBtn, backBtn;
private myEditText medit;
private imageAdapter mAdapter;
private GridView mGridview;

// Editable 是一个接口,巧妙的在接口中实现了工厂方法。
private Editable.Factory mEditableFactory = Editable.Factory.getInstance();

@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.editimage);
mAdapter = new imageAdapter(this);
findView();
}

private void findView() {
// TODO Auto-generated method stub
showText = (TextView) findViewById(R.id.show_text);
insetBtn = (TextView) findViewById(R.id.inset_Btn);// 插入表情
insetBtn.setOnClickListener(this);
edit = (EditText) findViewById(R.id.edit);
okBtn = (Button) findViewById(R.id.ok_btn);// 发送表情
okBtn.setOnClickListener(this);
backBtn = (Button) findViewById(R.id.back_btn);
backBtn.setOnClickListener(this);

medit = (myEditText) findViewById(R.id.edit01);
medit.setText("sssss");
medit.insertIcon(R.drawable.smile);
medit.setVisibility(View.GONE);

mGridview = (GridView) findViewById(R.id.start_grid);
mGridview.setAdapter(mAdapter);
mGridview.setOnItemClickListener(listener);
mGridview.setVisibility(View.GONE);
}

/** 选择表情 **/
OnItemClickListener listener = new OnItemClickListener() {

@Override
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
long arg3) {
// TODO Auto-generated method stub
int clickedImageId = imageAdapter.express[arg2];
mGridview.setVisibility(View.GONE);
CharSequence cs = Html.fromHtml("", imageGetter, null);
edit.append(cs);
// inputLable.append(Html.fromHtml("",
// imageGetter, null));
}
};

@Override
public void onClick(View v) {
// TODO Auto-generated method stub
switch (v.getId()) {
case R.id.inset_Btn:// 插入表情
mGridview.setVisibility(View.VISIBLE);
break;
case R.id.ok_btn:// 发送表情
Log.v("edit==", edit.getText().toString());
// 将edit中的内容转换为Html
Editable t = mEditableFactory.newEditable(edit.getText());
// System.out.println("edit.getText():"+t+";"+t.toString());

// 封装文本信息及图片,转换为Html格式,并去除<p></p>
String chatStr = (Html.toHtml(t)).replace("<p>", "").replace(
"</p>", "");
// String chatStr =("CCC" + ":\n\n\t" +
// Html.toHtml(t)).replace("<p>", "").replace("</p>", "");
Log.v("chatStr==", chatStr);
CharSequence cs = Html.fromHtml(chatStr, imageGetter, null);
showText.append(cs);
showText.append("\n");
edit.setText("");
break;
case R.id.back_btn:// 取消
finish();
break;
default:
break;
}
}

/*
* 实例化一个ImageGetter用于下面的EditText显示表情时Html的转换 edittext里面的html标签替换为图片的一个方法
*/
ImageGetter imageGetter = new ImageGetter() {
@Overridehttp://www.huiyi8.com/qqbq/
public Drawable getDrawable(String source) {
int id = Integer.parseInt(source);

// 根据id从资源文件中获取图片对象
Drawable d = getResources().getDrawable(id);
d.setBounds(0, 0, d.getIntrinsicWidth(), d.getIntrinsicHeight());
return d;
}
};

}[/mw_shl_code]

在EditText插入表情,并发送表情的更多相关文章

  1. QQ表情的发送与接收

    我想大家对QQ表情一定不会陌生,一个个小头像极大丰富了聊天的乐趣,使得聊天不再是简单的文字叙述,还能够配上喜.怒.哀.乐等表达人物心情的小图片.本文重点要介绍的内容就是如何在微信公众平台使用QQ表情, ...

  2. [033] 微信公众帐号开发教程第9篇-QQ表情的发送与接收(转)

    我想大家对QQ表情一定不会陌生,一个个小头像极大丰富了聊天的乐趣,使得聊天不再是简单的文字叙述,还能够配上喜.怒.哀.乐等表达人物心情的小图片.本文重点要介绍的内容就是怎样在微信公众平台使用QQ表情, ...

  3. [033] 微信公众帐号开发教程第9篇-QQ表情的发送与接收

    我想大家对QQ表情一定不会陌生,一个个小头像极大丰富了聊天的乐趣,使得聊天不再是简单的文字叙述,还能够配上喜.怒.哀.乐等表达人物心情的小图片.本文重点要介绍的内容就是如何在微信公众平台使用QQ表情, ...

  4. iOS推送:Java服务器端发送表情(绘文字)

    http://blog.csdn.net/musou_ldns/article/details/8692520 功能的时候,客户要求能够给iphone发送表情图标,也就是绘文字. 手机环境:iOS5. ...

  5. Android 聊天表情输入、表情翻页带效果、下拉刷新聊天记录

    经过一个星期的折腾,最终做完了这个Android 聊天表情输入.表情翻页带效果.下拉刷新聊天记录.这仅仅是一个单独聊天表情的输入,以及聊天的效果实现.由于我没有写server,所以没有两方聊天的效果. ...

  6. Android实现EditText插入表情、超链接等格式

    参考:https://www.jianshu.com/p/84067ad289d2 参考:https://www.jianshu.com/p/d82ac2edc7e8

  7. 代码提交的时候可以插入表情了-GitHub表情的使用

    GitHub官方有个表情项目,旨在丰富文字信息.意味着你可以在提交代码的时候,在提交信息里面添加表情,同时也可以在项目的ReadMe.md文件里面使用表情.除此之外,当然还有项目在GitHub上的wi ...

  8. iOS开发之在Xcode代码中插入类似QQ的表情

    1.Xcode打开工程 2.菜单栏Edit--->SpecialCharacters 3.点击它出现

  9. 项目中使用emoji表情包与表情的解析过程详情

    菜鸡一只,刚开始写博客文笔不好,有问题欢迎相互讨论.闲话不多说. 用到了三个插件 Emoji Picker 第一步 这个emoji表情包插件是我找到比较好 的一个,input框中是不能放入图片的,效果 ...

随机推荐

  1. 跨域问题解决方式(HttpClient安全跨域 &amp; jsonp跨域)

    1 错误场景 今天要把项目部署到外网的时候,出现了这种问题, 我把两个项目放到自己本机的tomcat下, 进行代码调试, 执行 都没有问题的, 一旦把我须要调用接口的项目B放到其它的server上, ...

  2. pkav之当php懈垢windows通用上传缺陷

    $pkav->publish{当php懈垢windows}剑心@xsser抛弃了我,但我却不能抛弃乌云..php懈垢windows,就像男人邂逅女人,早晚都会出问题的..感谢二哥@gainove ...

  3. (转)微信小程序开发项目——笑话大全

    此项目是学习完微信小程序后实现的一个demo,采用聚合数据的免费api获取最新的文本笑话和趣图(图片和gif图)   项目地址:https://github.com/zhijieeeeee/wecha ...

  4. AWK 思维导图

      完整的AWK思维导图 文章来源:刘俊涛的博客 地址:http://www.cnblogs.com/lovebing

  5. webstrom 代码工具(转http://www.cnblogs.com/tangdanni11/p/5149063.html)

    Emmet的前身是大名鼎鼎的Zen coding,如果你从事Web前端开发的话,对该插件一定不会陌生.它使用仿CSS选择器的语法来生成代码,大大提高了HTML/CSS代码编写的速度,比如下面的演示: ...

  6. 【Python】matplotlib绘制折线图

    一.绘制简单的折线图 import matplotlib.pyplot as plt squares=[1,4,9,16,25] plt.plot(squares) plt.show() 我们首先导入 ...

  7. matlab-2

    function varargout = gmm(X, K_or_centroids) % ====================================================== ...

  8. Nook 2 Root

        最后我还是忍不住root了它,用了差一点够一个月 1.备份2.root 3.装软件=====================================================1. ...

  9. 36:字符串排序SortString

    题目描述:编写一个程序,将输入字符串中的字符按如下规则排序. 规则1:英文字母从A到Z排列,不区分大小写. 如,输入:Type 输出:epTy 规则2:同一个英文字母的大小写同时存在时,按照输入顺序排 ...

  10. cartographer Ubuntu16.04 ros环境配置

    首先要正确安装 ROS ,然后第12步应注意,proto的版本是个关键容易出错.   1.添加ROS源http:/packages.ros.org/ros/ubuntu xenial main   ( ...