# Emoji **Repository Path**: chinasoft4_ohos/Emoji ## Basic Information - **Project Name**: Emoji - **Description**: 一个好用的表情库 - **Primary Language**: Java - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 6 - **Created**: 2021-06-29 - **Last Updated**: 2022-10-25 ## Categories & Tags **Categories**: harmonyos-image **Tags**: None ## README # Emoji ## 项目介绍 项目名称:Emoji 所属系列:OpenHarmony的第三方组件适配移植 功能:为你的应用添加Emoji支持 项目移植状态:主功能完成 调用差异:无 开发版本:sdk6,DevEco Studio 2.2 Beta2 基线版本:Release 0.7.0 ## 效果演示 ## 安装教程 1.在项目根目录下的build.gradle文件中, ``` allprojects { repositories { maven { url 'https://s01.oss.sonatype.org/content/repositories/releases/' } } } ``` 2.在entry模块的build.gradle文件中, ``` dependencies { implementation('com.gitee.chinasoft_ohos:emoji:1.0.0') ...... } ``` 在sdk6,DevEco Studio 2.2 Beta1下项目可直接运行 如无法运行,删除项目.gradle,.idea,build,gradle,build.gradle文件, 并依据自己的版本创建新项目,将新项目的对应文件复制到根目录下 ## 使用说明 * Step1,初始化: 直接初始化EmojIconActions,传入对应的参数值,方法如下: ``` /** * Constructor * * @param ctx The context of current ability. * @param rootView 放入软键盘的父布局 * @param width emoji软键盘的宽 * @param height emoji软键盘的高 * @param textFields 输入框,传入多个用于区分输入框 */ EmojIconActions(Context ctx, StackLayout rootView, int width, int height, EmojiconRecentsManager recentsManager, EmojiconTextField... textFields) ``` * Step2,输入框必须被设置tag用于出现多个输入框时区分当前作用的输入框,建议使用EmojiconsPopup类的静态常量。 ```java EmojiconsPopup public static final String INSERT_TEXT_TAG = "1"; public static final String NO_TEXT_TAG = "0"; public static final String SET_TEXT_TAG = "2"; mInputDialog.setTag(EmojiconsPopup.INSERT_TEXT_TAG); ``` * Step3,当需要显示emoji软键盘时: ```java EmojIconActions /** * 显示 */ public void showPopupFromFloat() { if (popup != null) { changeEmojiKeyboardIcon(emojiButton, showPixmap); popup.showFloat(); } visiblePopup(); } /** * 隐藏 */ public void hidePopup() { if (popup != null && popup.getVisibility() == Component.VISIBLE) { changeEmojiKeyboardIcon(emojiButton, hidePixmap); popup.hide(); } verticalPopup(); } /** * 不显示 */ public void invisiblePopup() { if (popup != null && popup.getVisibility() == Component.VISIBLE) { changeEmojiKeyboardIcon(emojiButton, hidePixmap); popup.setVisibility(Component.INVISIBLE); } verticalPopup(); } ``` * Step4,其他一些设置: ```java EmojIconActions /** * 设置颜色 * * @param tabsColor 导航 * @param backgroundColor 背景色 */ public void setColors(int tabsColor, int backgroundColor) { this.popup.setColors(tabsColor, backgroundColor); } /** * 设置id * * @param keyboardIcon 键盘 * @param smileyIcon 笑脸 */ public void setIconsIds(int keyboardIcon, int smileyIcon) { this.keyBoardIcon = keyboardIcon; this.smileyIcons = smileyIcon; } /** * 添加输入框 * * @param editTexts 输入框 */ public void addEmojiconEditTextList(EmojiconTextField... editTexts) { emojiconTextFieldList = editTexts; for (EmojiconTextField editText : editTexts) { editText.setFocusChangedListener(this); } } /** * 使用系统软键盘 * * @param isSystemEmoji 标记 */ public void setUseSystemEmoji(boolean isSystemEmoji) { for (EmojiconTextField editText : emojiconTextFieldList) { editText.setUseSystemDefault(isSystemEmoji); } } ``` ## 测试信息 CodeCheck代码测试无异常 CloudTest代码测试无异常 病毒安全检测通过 当前版本demo功能基本实现原组件功能,原组件使用Spannable API将图片转换成TextView显示用以实现其他不同平台的样式,openharmony暂时没有相关的API,所以没法实现该功能 ## 版本迭代 - 1.0.0 ## 版权和许可信息 ``` Copyright (C) 2016 - Niklas Baudy, Ruben Gees, Mario Đanić and contributors Licensed under the Apache License, Version 2.0 ```