在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框中是不能放入图片的,效果 ...
随机推荐
- C# DataTable 总结
(1)构造函数 DataTable() 不带参数初始化DataTable 类的新实例. DataTable(string tableName) 用指定的表名初始化DataTable 类的新实例. ...
- Html5 播放Hls格式视频
二群号为766718184 ,博主提供Ffmpeg.GB28181视频教程 播放地址: http://www.iqiyi.com/u/1426749687 移动端Html5支持Hls格式视频播放,创 ...
- 19:ReverseNumber数字颠倒
题目描述 描述:输入一个整数,将这个整数以字符串的形式逆序输出 程序不考虑负数的情况,若数字含有0,则逆序形式也含有0,如输入为100,则输出为001 输入描述:输入一个int整数 输出描述:将这个整 ...
- oracle不同用户间访问表不添加用户名(模式)前缀
默认的情况下,oracle里面的用户A,要访问用户B的表需要带用户B的前缀,如访问用户B的 user表,需要这样访问 select * from B.user;如果想要不添加用户前缀,需要这样处理: ...
- Delphi列表控件TListView定位到某一行。
ListView1.Item[100].Focused = true; //定位到索引为100的行ListView1.Item[100].Selected = true; ListView1.Item ...
- C#如何遍历数组?
// 一维数组 int[] arr = { 1, 2, 3, 4, 5 }; foreach (int i in arr) { Console.WriteLine(i.ToString() + &qu ...
- 利用expload 分割字符串 变成数组
#admin_abc去掉下划线 =>>变成 array('admin','abc') $table_Name=explode('_', $table_Name);
- linux lamp
1. 用yum安装Apache,Mysql,PHP. 1.1安装Apache yum install httpd httpd-devel 安装完成后,用/etc/init.d/httpd start ...
- PowerBuilder -- 日期控件
MonthCalendar
- 【BZOJ1222】[HNOI2001]产品加工 DP
[BZOJ1222][HNOI2001]产品加工 Description 某加工厂有A.B两台机器,来加工的产品可以由其中任何一台机器完成,或者两台机器共同完成.由于受到机器性能和产品特性的限制,不同 ...