Emoji icon indicating copy to clipboard operation
Emoji copied to clipboard

Android IOS风格Emoji表情,简单实用

效果图

效果图

如何使用

dependencies {  
    implementation 'com.github.OneGreenHand:Emoji:v1.2.4'
}

1、初始化
在Application中进行初始化

EmojiManager.init(this)  

2、在布局中应用

  <com.green.hand.library.widget.EmojiBoard
      android:layout_width="match_parent"
      android:layout_height="wrap_content"
      app:deleteIcon="@mipmap/ic_launcher"//可选
      app:emojiIndicator="@mipmap/ic_launcher"//可选
      app:emojiIndicatorHover="@mipmap/ic_launcher"//可选
    /> 

*可选,如果不用此控件,需自行监听实现,具体参考EmoniEdittext

   <com.green.hand.library.widget.EmojiEdittext
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
    />

//兼容emoji显示的textview

     <com.green.hand.library.widget.EmojiTextview
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
      />

3、在页面中使用 实现表情框Item单击事件(emojiBoard为EmojiBoard控件,textEditor为Edittext控件)

emojiBoard.setItemClickListener(new EmojiBoard.OnEmojiItemClickListener() {//表情框点击事件
     @Override
     public void onClick(String code) {
        if (code.equals("/DEL")) {//点击了删除图标
          textEditor.dispatchKeyEvent(new KeyEvent(KeyEvent.ACTION_DOWN,KeyEvent.KEYCODE_DEL));
        } else {//插入表情
         textEditor.getText().insert(textEditor.getSelectionStart(), code);
     }
     }
    });

4、其他方法
EmojiBoard ---> showBoard() //显示隐藏表情框
EmoniEdittext ---> isEnable(view) //用于未输入文字时,其他按钮不可点击
EmojiTextview ---> setUseSystemDefault(boolean) //是否使用系统默认表情

属性说明

deleteIcon:删除icon
emojiIndicator:底部未选中icon
emojiIndicatorHover:底部选中icon

补充说明

如果仍然出现显示为☐或者乱码情况,可尝试使用官方的 EmojiCompat 支持库或使用emojicon三方库

版本日志

  • v1.2.4
    • 升级为androidX
  • v1.2.3
    • GridView变更为Recycleview、资源优化、升级版本
  • v1.2.2
    • 新增、替换表情、去除ButterKnife依赖
  • v1.2.1
    • 新增、去除重复表情
    • 修复部分手机无法显示问题
    • 加入兼容Emoji显示的控件

其他

有任何问题,可以在issues给我留言反馈。