一款相对比较简单 聊天界面的 表情输入库:
来源:互联网 发布:一扫就出答案的软件 编辑:程序博客网 时间:2024/06/18 13:37
一,前言:
说实话,搞了这么久的Android,个人感觉,Android开发 其实只是一个无限重复的工作。 当然说这句话是有前提的,前提就是你还未从一个代码学习者转变为一个代码创造者。然而 很不辛,博主就是一个这样的开发者。这是博主在写这篇文章时的感悟。哎,说多了都是泪呀,
多说无益,还是谈下我们今天的项目:今天要写的博客其实是一个关于聊天界面输入表情的一篇博客。最近公司因为要用到聊天功能,博主稍微进行了一下研究。搞定公司项目后,自己写了一个关于表情的库。说实话网上有关的库简直时太多了。
二,献上效果图:
三,代码介绍:
说实话 网上的这种库简直时太多,本人也是在网上找了很多代码,最后在找到感觉还不错的几个库。改了改源码。相比原来的库更加简单优化。如果有童鞋对此有兴趣,可以继续往下看,否则请忽略。
初始化底部 inputboard 代码:
//activity 中初始化 代码: @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); ekBar = findViewById(R.id.ek_bar); initEmotionListener(); //初始化 表情点击事件: initMView(); //初始化 View }
//初始化 表情点击事件: private void initEmotionListener() { //TODO SendImage emoticonClickListener = new EmoticonClickListener() { @Override public void onEmoticonClick(Object o, int actionType, boolean isDelBtn) { if (isDelBtn) { EmotionsPageManager.delClick(ekBar.getEtChat()); } else { if (o == null) { return; } if (actionType == Constants.EMOTICON_CLICK_IMAGE) { if (o instanceof EmoticonBean) { Toast.makeText(EmotionsActivity.this, "图片:" + o.toString(), Toast.LENGTH_SHORT).show(); } } else { String content = null; if (o instanceof EmoticonBean) { content = ((EmoticonBean) o).getContent(); } if (TextUtils.isEmpty(content)) { return; } int index = ekBar.getEtChat().getSelectionStart(); Editable editable = ekBar.getEtChat().getText(); editable.insert(index, content); } } } }; }
/** * 初始化 inputView: */ private void initMView() { ekBar.setAdapter(EmotionsPageManager.getCommonAdapter(this, emoticonClickListener)); ekBar.addOnFuncKeyBoardListener(this); SimpleAppsGridView gridView = new SimpleAppsGridView(this); ekBar.addFuncView(gridView); ekBar.getEtChat().setOnSizeChangedListener(new EmoticonsEditText.OnSizeChangedListener() { @Override public void onSizeChanged(int w, int h, int oldw, int oldh) { scrollToBottom(); } }); //发送按钮 ekBar.getBtnSend().setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { String mcgContent = ekBar.getEtChat().getText().toString(); scrollToBottom(); if (mcgContent.equals("")) { return; } Toast.makeText(getApplicationContext(), "发送消息", Toast.LENGTH_SHORT).show(); } }); //切换语音输入 ekBar.getVoiceOrText().setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { int i = v.getId(); if (i == R.id.btn_voice_or_text) { //切换 ekBar.setVideoText(); } } }); }
表情图片以及表情符号,都是一些资源文件:博主对他们进行了压缩。减少了包的大小。
博主的表情包相对较多。当然如果对你无用你可以直接找到工具类EmotionsPageManager注释如下代码即可:
//初始化 底部表情pager的 适配器:表情适配器分为 文本表情和 图片表情: public static PageSetAdapter getCommonAdapter(Context context, EmoticonClickListener emoticonClickListener) { if (sCommonPageSetAdapter != null) { return sCommonPageSetAdapter; } PageSetAdapter pageSetAdapter = new PageSetAdapter(); //添加 微信 表情 addEmotionPageSetEntity(pageSetAdapter, context, emoticonClickListener, "wxemotions", "wxemotions.zip","wx_emotions.xml"); //添加 极光 表情: addEmotionPageSetEntity(pageSetAdapter, context, emoticonClickListener, "jiguangemotions", "jiguangemotions.zip", "jiguang_emotions.xml"); //添加 兔斯基表情: addImagePageSetEntity(pageSetAdapter, context, emoticonClickListener, "rabbits", "rabbits.zip", "rabbits.xml"); //添加 兔子表情图片: addImagePageSetEntity(pageSetAdapter, context, emoticonClickListener, "bigrabbits", "bigrabbits.zip", "big_rabbits.xml"); //添加 鸡表情图片: addImagePageSetEntity(pageSetAdapter, context, emoticonClickListener, "chickenemotions", "chickenemoticons.zip", "chicken_emoticons.xml"); //添加 全身熊图片: addImagePageSetEntity(pageSetAdapter, context, emoticonClickListener, "bigbears","bigbears.zip","big_bear.xml"); //添加 熊头像图片: addImagePageSetEntity(pageSetAdapter, context, emoticonClickListener, "bears","bears.zip","bear.xml"); //添加 颜文字 addEmotionTextPageSetEntity(pageSetAdapter, context, emoticonClickListener); //滑倒 更多的 其他功能:// addTestPageSetEntity(pageSetAdapter, context); //控制能否从表情滑动到更多功能 return pageSetAdapter; }
当然如果对你有用希望动动你的小手fork 或者关注博主一下。下面奉上代码源地址:
https://github.com/zqHero/SessionChattingLibDemo
//下面 介绍网上的 几个开源库 博主 也是参考了下面的库:
// 当然如果对你有帮助 希望能fork一下喽:
XhsEmoticonsKeyboard:
https://github.com/w446108264/XhsEmoticonsKeyboard
LQREmojiLibrary:
https://github.com/GitLqr/LQREmojiLibrary
阅读全文
0 0
- 一款相对比较简单 聊天界面的 表情输入库:
- QQ聊天 代码 输入表情
- 分左右布局的聊天界面、并且添加表情
- 编写简单的聊天界面
- android 一个ListView显示两种样式,比较简单,比如聊天的界面最常用
- Qt仿QQ界面,主界面、聊天界面、表情界面
- 聊天界面: 表情和文字自适应
- 一款比较简单实用的js模态框
- IOS UITextview实现聊天表情输入框
- 简单的聊天界面demo FaceChatDemo
- 简单实现带界面的一对一聊天
- 一个简单聊天界面的UI实现
- 编写一个简单的聊天界面
- Android设置EditText显示输入的表情Icon(自定义的聊天有个发送表情功能,在输入框显示表情)
- Android中聊天界面表情输入与键盘输入适配各种主题标题栏listview+edittext+button冲突完美解决
- 简单聊天界面
- qq聊天界面七:表情的发送接收(用富文本现实)
- 聊天界面的制作(三)——表情列表发送功能
- 软件调试笔记12
- C++知识点杂谈
- JVM——Java虚拟机架构
- 用openssl为apache制作ssl证书
- linux 安装配置zookeeper
- 一款相对比较简单 聊天界面的 表情输入库:
- windows下安装AnyProxy抓取移动App Http请求
- 学习笔记——插入排序和希尔排序
- VM安装linux后没有内网ip地址的问题
- c# 字节级别分割为等长字符串数组,分割中英混合字符串为固定长度
- 使用ViewPager一屏加载多张图片,图片重叠问题
- Oracle 安装组件xml-db
- linux debian下配置ntp时钟同步
- Maven常用命令