AXEmojiView
an advanced library which adds emoji,sticker,... support to your Android application.
Install / Use
/learn @Aghajari/AXEmojiViewREADME
Screenshot
<img src="./images/main.png" width=300 title="Screen"> <img src="./images/dark.png" width=300 title="Screen">
Table of Contents
- Installation
- Microsoft Fluent 3D Emoji
- Usage
- Views
- Listeners
- Replace String With Emojis
- RecentManager And VariantManager
- Variant View
- Emoji Loader
- AnimatedStickers (AXrLottie)
- AXMemojiView
- Download APK
- Author
- License
Changelogs
1.5.2:
- New emoji provider!
- Microsoft3DProvider
- Some bugs fixed
1.5.0:
- New emoji providers!
- AppleProvider
- iOSProvider
- GoogleProvider
- SamsungProvider
- FacebookProvider
- WhatsAppProvider
- TwitterProvider
- EmojidexProvider
- EmojiPediaLoader project for auto updating emojis from emojipedia.org
- New Variants!
- Now you can filter some emojis from EmojiManager
- Now you can disable variants from EmojiManager
Installation
AXEmojiView is available in the mavenCentral(), so you just need to add it as a dependency (Module gradle)
LatestVersion : 1.5.0
Gradle
def emojiViewVersion = "1.5.2"
def emojiViewProvider = "AppleProvider"
implementation "io.github.aghajari:AXEmojiView:$emojiViewVersion"
implementation "io.github.aghajari:AXEmojiView-$emojiViewProvider:$emojiViewVersion"
List of providers:
implementation "io.github.aghajari:AXEmojiView-Microsoft3DProvider:$emojiViewVersion"
implementation "io.github.aghajari:AXEmojiView-AppleProvider:$emojiViewVersion"
implementation "io.github.aghajari:AXEmojiView-iOSProvider:$emojiViewVersion"
implementation "io.github.aghajari:AXEmojiView-GoogleProvider:$emojiViewVersion"
implementation "io.github.aghajari:AXEmojiView-SamsungProvider:$emojiViewVersion"
implementation "io.github.aghajari:AXEmojiView-FacebookProvider:$emojiViewVersion"
implementation "io.github.aghajari:AXEmojiView-WhatsAppProvider:$emojiViewVersion"
implementation "io.github.aghajari:AXEmojiView-TwitterProvider:$emojiViewVersion"
implementation "io.github.aghajari:AXEmojiView-EmojidexProvider:$emojiViewVersion"
Maven
<dependency>
<groupId>io.github.aghajari</groupId>
<artifactId>AXEmojiView</artifactId>
<version>1.5.2</version>
<type>pom</type>
</dependency>
Microsoft Fluent 3D Emoji
Fluent Emoji are a collection of familiar, friendly, and modern emoji from Microsoft. Reference <img src="https://github.com/microsoft/fluentui-emoji/blob/main/art/readme_banner.webp" width=500 title="Fluent Emoji">
Note: This emoji provider doesn't include flags! Why?
Usage
Let's START! :smiley:
Install Emoji Provider
First step, you should install EmojiView with your EmojiProvider!
AXEmojiManager.install(this,new AXIOSEmojiProvider()); // new ProviderClassName
Note: iOSProvider is almost the same as AppleProvider but has less variants, It's a provider of Telegram emoji set <br> Note: GoogleProvider includes Emoji-14 new emojis
| AppleProvider | GoogleProvider | Microsoft3DProvider | | :---: | :---: | :---: | | <img src="./images/providers/apple_light.png" width=200 title="Screen"> | <img src="./images/providers/google_light.png" width=200 title="Screen"> | <img src="./images/providers/microsoft3d_light.png" width=200 title="Screen"> | | <img src="./images/providers/apple_dark.png" width=200 title="Screen"> | <img src="./images/providers/google_dark.png" width=200 title="Screen"> | <img src="./images/providers/microsoft3d_dark.png" width=200 title="Screen"> |
| FacebookProvider | WhatsAppProvider | SamsungProvider | | :---: | :---: | :---: | | <img src="./images/providers/facebook_light.png" width=200 title="Screen"> | <img src="./images/providers/whatsapp_light.png" width=200 title="Screen"> | <img src="./images/providers/samsung_light.png" width=200 title="Screen"> | | <img src="./images/providers/facebook_dark.png" width=200 title="Screen"> | <img src="./images/providers/whatsapp_dark.png" width=200 title="Screen"> | <img src="./images/providers/samsung_dark.png" width=200 title="Screen"> |
| iOSProvider | TwitterProvider | EmojidexProvider | | :---: | :---: | :---: | | <img src="./images/providers/apple_light.png" width=200 title="Screen"> | <img src="./images/providers/twitter_light.png" width=200 title="Screen"> | <img src="./images/providers/emojidex_light.png" width=200 title="Screen"> | | <img src="./images/providers/apple_dark.png" width=200 title="Screen"> | <img src="./images/providers/twitter_dark.png" width=200 title="Screen"> | <img src="./images/providers/emojidex_dark.png" width=200 title="Screen"> |
Custom Emoji Provider
If you wanna display your own Emojis you can create your own implementation of EmojiProvider and pass it to AXEmojiManager.install.
<img src="./images/google.jpg" width=250 title="Screen"> <img src="./images/Twitter.jpg" width=250 title="Screen"> <img src="./images/one.jpg" width=250 title="Screen">
Basic Usage
Create an AXEmojiEditText in your layout.
<com.aghajari.emojiview.view.AXEmojiEditText
android:id="@+id/edt"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:hint="enter your message ..." />
Now, you should create a Page. Current pages are :
- EmojiView
- SingleEmojiView
- StickerView
Let's try EmojiView :
AXEmojiEditText edt = findViewById(R.id.edt);
AXEmojiView emojiView = new AXEmojiView(this);
emojiView.setEditText(edt);
And add this page to AXEmojiPopup :
Note: AXEmojiPopup deprecated! Use AXEmojiPopupLayout instead.
AXEmojiPopup emojiPopup = new AXEmojiPopup(emojiView);
emojiPopup.toggle(); // Toggles visibility of the Popup.
emojiPopup.show(); // Shows the Popup.
emojiPopup.dismiss(); // Dismisses the Popup.
emojiPopup.isShowing(); // Returns true when Popup is showing.
And we are done! :smiley: Output :
<img src="./images/ios.jpg" width=200 title="Screen">AXEmojiPopupLayout
you can also create an AXEmojiPopupLayout instead of AXEmojiPopup!
i believe that AXEmojiPopupLayout has better performance, more customizable and it's faster.
- create an AXEmojiPopupLayout in your layout.
<com.aghajari.emojiview.view.AXEmojiPopupLayout
android:id="@+id/layout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="bottom"/>
- add the created page to AXEmojiPopupLayout :
AXEmojiPopupLayout layout = findViewById(R.id.layout);
layout.initPopupView(emojiView);
layout.toggle(); // Toggles visibility of the Popup.
layout.show(); // Shows the Popup.
layout.dismiss(); // Dismisses the Popup.
layout.hideAndOpenKeyboard(); // Hides the popup
layout.isShowing(); // Returns true when Popup is showing.
Output is just same as the AXEmojiPopup's output!
Single Emoji View
SingleEmojiView is a RecyclerView and all emojis will load in one page (Same As Telegram Inc)
AXSingleEmojiView emojiView = new AXSingleEmojiView(this);
emojiView.setEditText(edt);
Output :
<img src="./images/SingleEmojiView.png" width=350 title="Screen">StickerView
StickerView :
you have to create your StickerProvider and load all your Stickers (from Url,Res,Bitmap or anything you want!)
see example : [WhatsAppProvider](./A
Related Skills
openhue
349.9kControl Philips Hue lights and scenes via the OpenHue CLI.
sag
349.9kElevenLabs text-to-speech with mac-style say UX.
weather
349.9kGet current weather and forecasts via wttr.in or Open-Meteo
casdoor
13.3kAn open-source AI-first Identity and Access Management (IAM) /AI MCP & agent gateway and auth server with web UI supporting OpenClaw, MCP, OAuth, OIDC, SAML, CAS, LDAP, SCIM, WebAuthn, TOTP, MFA, Face ID, Google Workspace, Azure AD
