当前位置: 首页 > news >正文

Android开源 自定义emoji键盘,EmojiPack v2.1版本

目录

一,简介

二、安装

添加jitpack 仓库

添加依赖:

混淆规则:

三、使用

1、一次性配置emoji显示处理

二、emoji的自定义键盘的使用


一,简介

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 {@Overrideprotected 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 展示键盘容器View

emoji.show() //显示emoji键盘

emoji.hide()

调用注意:EmojiPack暂未实现根据Android自带键盘的状态来改变自己的键盘状态,所有判断Android自带键盘显示后关闭emojipack键盘需要开发人员自行处理;

EmojiPack会在Android自带键盘显示状态下去先关闭它,然后显示自己,这个不需要开发人员处理。

kotlin示例

class MainActivity : AppCompatActivity() {private lateinit var viewBind:ActivityMainBindingoverride 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.isSelectedif (it.isSelected) {emoji.show()} else {emoji.hide()}}}
}

Java 示例

ublic class MainActivity extends AppCompatActivity {@Overrideprotected 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() {@Overridepublic void onClick(View v) {v.setSelected(!v.isSelected());if (v.isSelected()) {emoji.show();} else {emoji.hide();} }}); }
}

如果对您有一些意义,希望您给博主一些鼓励(点赞、关注、收藏),如果这个EmojiPack有BUG欢迎大家提出。

http://www.lryc.cn/news/98190.html

相关文章:

  • SOLIDWORKS软件的优势分析 硕迪科技
  • Android性能优化之游戏的Theme背景图
  • 网络安全(黑客)系统自学,成为一名白帽黑客
  • lua学习-2 常见运算符
  • 【图像处理】使用 OpenCV 将您的照片变成卡通
  • 暖手宝UL认证 亚马逊UL测试报告 UL499测试项目
  • ES6模块化与异步编程高级用法
  • spring-cloud-starter-gateway 4.0.6负载均衡失败
  • Tomcat注册为Windows服务
  • 【Maven】Maven 中 pom.xml 文件
  • 2、Linux驱动开发:模块_引用符号
  • Python web实战 | Docker+Nginx部署python Django Web项目详细步骤【干货】
  • 【uniapp】实现买定离手小游戏
  • 【vim 学习系列文章 3 - vim 选中、删除、复制、修改引号或括号内的内容】
  • webpack联邦模块介绍及在dumi中使用问题整理
  • 记录一下Kotlin: Module was compiled with an incompatible version of Kotlin.的问题
  • html中使用Vue+element UI动态创建表单数据不显示问题
  • CentOS下 Docker、Docker Compose 的安装教程
  • [OnWork.Tools]系列 02-安装
  • 【外键合并python】
  • Mongodb SQL 到聚合映射快速参考
  • 腾讯云标准型S6/SA3/SR1/S5/SA2服务器CPU处理器大全
  • idea 关于高亮显示与选中字符串相同的内容
  • 【重点:单例模式】特殊类设计
  • 智能家居是否可与ChatGPT深度融合?
  • LED芯片 VAS1260IB05E 带内部开关LED驱动器 汽车硬灯带灯条解决方案
  • 微信小程序插件 painter 生成海报、二维码
  • Python版day60
  • windows C++多线程同步<3>-互斥量
  • (学习笔记-系统结构)Linux内核与windows内核