在EditText插入表情,并发送表情
在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插入表情,并发送表情的更多相关文章
- QQ表情的发送与接收
我想大家对QQ表情一定不会陌生,一个个小头像极大丰富了聊天的乐趣,使得聊天不再是简单的文字叙述,还能够配上喜.怒.哀.乐等表达人物心情的小图片.本文重点要介绍的内容就是如何在微信公众平台使用QQ表情, ...
- [033] 微信公众帐号开发教程第9篇-QQ表情的发送与接收(转)
我想大家对QQ表情一定不会陌生,一个个小头像极大丰富了聊天的乐趣,使得聊天不再是简单的文字叙述,还能够配上喜.怒.哀.乐等表达人物心情的小图片.本文重点要介绍的内容就是怎样在微信公众平台使用QQ表情, ...
- [033] 微信公众帐号开发教程第9篇-QQ表情的发送与接收
我想大家对QQ表情一定不会陌生,一个个小头像极大丰富了聊天的乐趣,使得聊天不再是简单的文字叙述,还能够配上喜.怒.哀.乐等表达人物心情的小图片.本文重点要介绍的内容就是如何在微信公众平台使用QQ表情, ...
- iOS推送:Java服务器端发送表情(绘文字)
http://blog.csdn.net/musou_ldns/article/details/8692520 功能的时候,客户要求能够给iphone发送表情图标,也就是绘文字. 手机环境:iOS5. ...
- Android 聊天表情输入、表情翻页带效果、下拉刷新聊天记录
经过一个星期的折腾,最终做完了这个Android 聊天表情输入.表情翻页带效果.下拉刷新聊天记录.这仅仅是一个单独聊天表情的输入,以及聊天的效果实现.由于我没有写server,所以没有两方聊天的效果. ...
- Android实现EditText插入表情、超链接等格式
参考:https://www.jianshu.com/p/84067ad289d2 参考:https://www.jianshu.com/p/d82ac2edc7e8
- 代码提交的时候可以插入表情了-GitHub表情的使用
GitHub官方有个表情项目,旨在丰富文字信息.意味着你可以在提交代码的时候,在提交信息里面添加表情,同时也可以在项目的ReadMe.md文件里面使用表情.除此之外,当然还有项目在GitHub上的wi ...
- iOS开发之在Xcode代码中插入类似QQ的表情
1.Xcode打开工程 2.菜单栏Edit--->SpecialCharacters 3.点击它出现
- 项目中使用emoji表情包与表情的解析过程详情
菜鸡一只,刚开始写博客文笔不好,有问题欢迎相互讨论.闲话不多说. 用到了三个插件 Emoji Picker 第一步 这个emoji表情包插件是我找到比较好 的一个,input框中是不能放入图片的,效果 ...
随机推荐
- vue.js+koa2项目实战(六)数据库建表
数据库建表 1.打开 MySQL 终端 2.查看所有数据库 show databases 3.创建数据库 create database pet 4.进入数据库 use pet 5.创建数据表 cre ...
- OpenCV视频读取播放,视频转换为图片
转载请注明出处!!! http://blog.csdn.net/zhonghuan1992 OpenCV视频读取播放,视频转换为图片 介绍几个有关视频读取的函数: VideoCapture::Vide ...
- 解决phpmyadmin导入大数据库出现一系列问题
在用phpmyadmin导入mysql数据库文件时,往往超过2M就会提示文件大,导入不成功.这时我们打开phpmyadmin-->libraries-->config.default.ph ...
- 双向数据绑定---AngularJS的基本原理学习
Angular JS (Angular.JS) 是一组用来开发Web页面的框架.模板以及数据绑定和丰富UI组件.它支持整个开发进程,提供web应用的架构,无需进行手工DOM操作. AngularJS非 ...
- 在Mac OS X中下载Android源代码的一些经验
首先说明.随着最近(2014年6月開始)GFW的升级.这个站点:http://www.android.com/ 已经不能正常訪问了,以下的这些操作均是在我连接VPN的时候进行的. 首先,须要做一些准备 ...
- HTML5 2D平台游戏开发#2跳跃与二段跳
在上一篇<Canvas制作时间与行为可控的sprite动画>中已经实现了角色的左右移动,本篇继续实现角色的一系列动作之一:跳跃.先来看看最终效果: 要实现跳跃,必须模拟垂直方向的速度和重力 ...
- 畅通project再续 HDU杭电1875 【Kruscal算法 || Prim】
Problem Description 相信大家都听说一个"百岛湖"的地方吧.百岛湖的居民生活在不同的小岛中.当他们想去其它的小岛时都要通过划小船来实现.如今政府决定大力发展百岛湖 ...
- Maven一大坑——缓存
在Spring进行配置的时候,通常是分模块的,也就是一个配置文件会被另外一个配置文件所import. 但是今天的项目中我明明就都已经配置好了,文件也引入了,但是尼玛这个接口就是没有注入...... 后 ...
- Getting Started with the G1 Garbage Collector(译)
原文链接:Getting Started with the G1 Garbage Collector 概述 目的 这篇教程包含了G1垃圾收集器使用和它如何与HotSpot JVM配合使用的基本知识.你 ...
- 4.锁--并行编程之条件变量(posix condition variables)
在整理Java LockSupport.park()的东东.看到了个"Spurious wakeup".又一次梳理下. 首先来个<UNIX环境高级编程>里的样例: [c ...