Android开源 自定义emoji键盘,EmojiPack v2.1版本
当前已提供emoji的显示和emoji的选择自定义键盘,在emoji显示这一方面,大量的其他框架使用了自定义view来实现emoji的显示,也是如此实现,但是在实际开发时,开发人员,将不在需要大量使用内的自定义view,只需要在activity内完成一次性配置即可,所以的兼容性非常强,在使用EmojiPack时不再需要开发人员大量替换原本的显示控件,提高开发效率和减少bug的产生。
目录
一,简介
EmojiPack当前已提供emoji的显示和emoji的选择自定义键盘,在emoji显示这一方面,大量的其他框架使用了自定义view来实现emoji的显示,EmojiPack也是如此实现,但是在实际开发时,开发人员,将不在需要大量使用EmojiPack内的自定义view,只需要在activity内完成一次性配置即可,所以EmojiPack的兼容性非常强,在使用EmojiPack时不再需要开发人员大量替换原本的显示控件,提高开发效率和减少bug的产生。
EmojiPack的键盘风格采用了当前APP市场常用emoji键盘风格,但有所区别,把最近使用的emoji单独成一项,在开发使用时做了一定的约束,虽然使用时会有部分限制,但是却可以减少开发人员关注的事情和部分逻辑处理。
二、安装
添加jitpack 仓库
Android Gradle Plugin 为 v7.1.0 以下版本:进入项目根目录,打开 “build.gradle” 文件,在 “allprojects” 中加入如下代码:
...
allprojects {
repositories {
maven { url 'https://jitpack.io' }
mavenCentral()
google()
}
}
当您的 Android Gradle Plugin 为 v7.1.0 或以上版本:进入项目根目录,打开 “settings.gradle” 文件,在 “dependencyResolutionManagement” 中加入如下代码:
...
dependencyResolutionManagement { repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
repositories {
maven { url 'https://jitpack.io' }
mavenCentral()
google()
}
}
添加依赖:
进入 “app” 目录,打开 “build.gradle” 文件,在 “dependencies” 中添加 :
...
dependencies {
...
implementation "com.gitee.ym521:emojipack:2.1.0"
}
混淆规则:
在 “proguard-rules.pro” 文件中,为 EmojiPack 添加混淆的配置:
-keep class com.ym521.emojipack.**{*;}
三、使用
1、一次性配置emoji显示处理
EmojiPackHelper.activity(this).install()
调用注意,一定要在activity的onCreate()的 super.onCreate() 回调之前调用:
kotlin示例
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
EmojiPackHelper.activity(this).install()
super.onCreate(savedInstanceState)
}
}
Java 示例
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
EmojiPackHelper.activity(this).install();
super.onCreate(savedInstanceState);
}
}
注意:EmojiPackHelper.activity(activity).install()的参数activity必须是AppCompatActivity或者继承其的子类。
二、emoji的自定义键盘的使用
val emoji:EmojiPackKeyBoard.Builder= EmojiPackKeyBoard.build(this)
.setInputView(viewBind.etIput) //EditText 输入框
.bindView(viewBind.flEmoji) //FrameLayout 展示键盘容器Viewemoji.show() //显示emoji键盘
emoji.hide()
调用注意:EmojiPack暂未实现根据Android自带键盘的状态来改变自己的键盘状态,所有判断Android自带键盘显示后关闭emojipack键盘需要开发人员自行处理;
EmojiPack会在Android自带键盘显示状态下去先关闭它,然后显示自己,这个不需要开发人员处理。
kotlin示例
class MainActivity : AppCompatActivity() {
private lateinit var viewBind:ActivityMainBinding
override fun onCreate(savedInstanceState: Bundle?) {
EmojiPackHelper.activity(this).install()
super.onCreate(savedInstanceState)
viewBind = ActivityMainBinding.inflate(layoutInflater)
setContentView(viewBind.root)
val emoji = EmojiPackKeyBoard.build(this)
.setInputView(viewBind.etIput)
.bindView(viewBind.flEmoji)
viewBind.tvEmoji.setOnClickListener {
it.isSelected = !it.isSelected
if (it.isSelected) {
emoji.show()
} else {
emoji.hide()
}
}
}
}
Java 示例
ublic class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
EmojiPackHelper.activity(this).install();
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
EditText etInput = findViewById(R.id.etIput);
FrameLayout flEmoji = findViewById(R.id.flEmoji);
TextView tvEmoji = findViewById(R.id.tvEmoji);
EmojiPackKeyBoard.Builder emoji= EmojiPackKeyBoard.build(this)
.setInputView(etInput)
.bindView(flEmoji);
tvEmoji.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
v.setSelected(!v.isSelected());
if (v.isSelected()) {
emoji.show();
} else {
emoji.hide();
}
}
});
}
}
如果对您有一些意义,希望您给博主一些鼓励(点赞、关注、收藏),如果这个EmojiPack有BUG欢迎大家提出。
更多推荐
所有评论(0)