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

这篇具有很好参考价值的文章主要介绍了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 {


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

emoji.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欢迎大家提出。文章来源地址https://www.toymoban.com/news/detail-636037.html

到了这里,关于Android开源 自定义emoji键盘,EmojiPack v2.1版本的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • android 自定义键盘的简单实现和遇到的问题

    参考网站: 自定义软键盘(Android)_Wing_LS的博客-CSDN博客 Android自定义键盘的简单实现_xyTianZhao的博客-CSDN博客_android自定义键盘 Dialog上的EditText的自定义键盘_SKY_L1的博客-CSDN博客 Android 4.0设置Dialog点击屏幕不消失_一叶飘舟的博客-CSDN博客 一、代码实现 参考Android 4.0设置Dialog点

    2024年02月09日
    浏览(41)
  • Android自定义View之游戏摇杆键盘实现(一)

    public class RemoteViewBg { private Bitmap bitmapBg; public RemoteViewBg(Bitmap bitmap) { bitmapBg = bitmap; } //背景的绘图函数 public void draw(Canvas canvas, Paint paint, Rect src0 ,Rect dst0 ) { canvas.drawBitmap(bitmapBg, src0, dst0, paint); } } 重写系统的触摸时间,判断触摸点在背景范围内还是背景范围外 @Override public b

    2024年04月17日
    浏览(49)
  • android-使用PopupWindow实现随机排列的自定义密码键盘

    break; } else { b2 = true; } } if (b2) { data[i] = x; b = false; break; } } } return data; } keyboard_bg_big.xml ?xml version=\\\"1.0\\\" encoding=\\\"utf-8\\\"? item android:state_pressed=“true” android:drawable=“@drawable/key11”/ item android:state_focused=“true” android:drawable=“@drawable/key12”/ item android:state_focused=“false” android:state_p

    2024年04月27日
    浏览(34)
  • android系统中定义的按键码(包含键盘,游戏手柄,TV遥控器)

    数据来源:android sdk. KEYCODE_UNKNOWN         0 KEYCODE_SOFT_LEFT       1 KEYCODE_SOFT_RIGHT      2 KEYCODE_HOME            3 KEYCODE_BACK            4 KEYCODE_CALL            5 KEYCODE_ENDCALL         6 KEYCODE_0               7 KEYCODE_1               8 KEYCODE_2 

    2024年02月12日
    浏览(47)
  • Android 自定义开源库 EasyView

      这是一个简单方便的Android自定义View库,我一直有一个想法弄一个开源库,现在这个想法付诸实现了,如果有什么需要自定义的View可以提出来,不一定都会采纳,合理的会采纳,时间周期不保证,咱要量力而行呀,踏实一点。 1. 工程build.gradle 或 settings.gradle配置    代

    2024年02月06日
    浏览(34)
  • 重要通知|关于JumpServer开源堡垒机V2版本产品生命周期的相关说明

    JumpServer(https://github.com/jumpserver)开源项目创立于2014年6月,已经走过了九年的发展历程。经过长期的产品迭代,JumpServer已经成为广受欢迎的开源堡垒机。 JumpServer堡垒机遵循GPL v3开源许可协议,是符合4A(包含认证Authentication 、授权Authorization、 账号Accounting和审计Auditing)规

    2024年02月15日
    浏览(65)
  • 【Android签名机制详解】二:Android V1、V2、V3、V4签名方案

    书接上回【Android签名机制详解】一:密码学入门,在了解了消息摘要、非对称加密、数字签名、数字证书的基本概念后,我们趁热打铁、直奔主题,讲解签名在Android中的实际应用。 Android的数字证书(.der 或 .pem )是存放在密钥库文件(.jks 或 .keystore)当中的,而 数字证书作

    2024年02月12日
    浏览(32)
  • Android APK文件的签名V2查找、验证

      先看一下官网对V2签名的介绍:   APK 签名方案 v2 是一种全文件签名方案,该方案能够发现对 APK 的受保护部分进行的所有更改,从而有助于加快验证速度并增强完整性保证。   使用 APK 签名方案 v2 进行签名时,会在 APK 文件中插入一个 APK 签名分块,该分块位于“ZI

    2024年02月02日
    浏览(39)
  • Android 签名方法---同时使用V1和V2签名

            V1签名(jar signature):         V1是Android7.0之前的签名方式,使用JDK中的jar signature方式对APK进行签名打包。签名完成后会生成一个META-INF文件夹,里面有三个文件:MANIFEST.MF,CERT.RSA,CERT.SF,是用来记录签名信息的。简单来说V1 签名是对压缩包中单个文件签名验证

    2024年02月03日
    浏览(26)
  • 前端页面性能优化,性能测试算法优化,MeterSphere开源持续测试平台v2.10.5 LTS版本发布

    2023年8月7日,MeterSphere一站式开源持续测试平台正式发布v2.10.5 LTS版本。自2023年5月发布v2.10 LTS版本后,MeterSphere开源项目组坚持每两周发布小版本,持续进行问题的修复更新,并针对部分功能进行优化。 本次发布的MeterSphere v2.10.5 LTS版本在前端页面性能、性能测试算法、后端

    2024年02月14日
    浏览(39)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包