an advanced library which adds emoji,sticker,... support to your Android application. - GitHub - Aghajari/AXEmojiView: an advanced library which adds emoji ...
Skiptocontent
{{message}}
Aghajari
/
AXEmojiView
Public
Notifications
Star
111
Fork
25
anadvancedlibrarywhichaddsemoji,sticker,...supporttoyourAndroidapplication.
Apache-2.0License
111
stars
25
forks
Star
Notifications
Code
Issues
1
Pullrequests
0
Discussions
Actions
Projects
0
Wiki
Security
Insights
More
Code
Issues
Pullrequests
Discussions
Actions
Projects
Wiki
Security
Insights
master
Branches
Tags
Couldnotloadbranches
Nothingtoshow
Loading
{{refName}}
default
Couldnotloadtags
Nothingtoshow
{{refName}}
default
Loading
1
branch
6
tags
Code
Loading
Latestcommit
Aghajari
UpdateREADME.md
…
7338722
Aug14,2021
UpdateREADME.md
7338722
Gitstats
76
commits
Files
Permalink
Failedtoloadlatestcommitinformation.
Type
Name
Latestcommitmessage
Committime
AXEmojiView
v1.4.0
Aug14,2021
images
1.3.0
Jan4,2021
.DS_Store
Updatedto1.2.4
Nov29,2020
.gitattributes
Initialcommit
Apr21,2019
.gitignore
v1.4.0
Aug14,2021
AXEmojiView.png
Header
Aug16,2020
AXEmojiView1.3.0.apk
1.3.0
Jan4,2021
LICENSE
Updatedto1.2.2
Aug31,2020
README.md
UpdateREADME.md
Aug14,2021
Viewcode
Screenshot
TableofContents
Changelogs
Installation
Usage
InstallEmojiProvider
CustomEmojiProvider
BasicUsage
AXEmojiPopupLayout
SingleEmojiView
StickerView
AXEmojiPager-UseMultiplePagesTogether!
CreateYourCustomPages
AXEmojiSearchView
PopupAnimation
Customization
CustomFooter
DarkMode
Views
Listeners
ReplaceStringWithEmojis
RecentManagerAndVariantManager
VariantView
EmojiLoader
AnimatedStickers(AXrLottie)
AXMemojiView
DownloadApk
Author
License
README.md
AXEmojiViewisanadvancedAndroidLibrarywhichaddsemoji,sticker,...supporttoyourAndroidapplication
DemoAPK•Releases
Screenshot
TableofContents
Installation
Usage
InstallEmojiProvider
CustomEmojiProvider
BasicUsage
EmojiView
EmojiPopup
EmojiPopupLayout
SingleEmojiView
StickerView
EmojiPager(UseMultiplePagesTogether!)
CreateYourCustomPages
AXEmojiSearchView
PopupAnimation
Customization
CustomTheme
CustomFooter
DarkMode
Views
Listeners
ReplaceStringWithEmojis
RecentManagerAndVariantManager
VariantView
EmojiLoader
AnimatedStickers(AXrLottie)
AXMemojiView
DownloadAPK
Author
License
Changelogs
1.4.0:
MovedfromJCentertomavenCentral
FixedfocusonsearchView.
iOSProvidernowisonanewmodule
1.3.0:
AXEmojiSearchViewadded!
EmojiDatabaseaddedforemojisearch(has5800+words).
PopupAnimationaddedtoAXEmojiPopupLayout.
AXEmojiPopupLayoutimproved
NowyoucansettheMin/MaxPopupLayoutheight.
OnViewHeightChanged(intheight)addedtoPopupListener
AXEmojiPopupdeprecated,useAXEmojiPopupLayoutinstead.
(AXEmojiPopupLayoutismorecustomizable,fasterandalsoithasabetterperformance)
NowAXEmojiViewisfasterandithasbetterperformance;)
SampleApplicationUpdated.
Someimprovements&Bugsfixed
Installation
AXEmojiViewisavailableinthemavenCentral(),soyoujustneedtoadditasadependency(Modulegradle)
LatestVersion:1.4.0
Gradle
implementation'io.github.aghajari:AXEmojiView:1.4.0'
//Provider
implementation'io.github.aghajari:AXEmojiView-iOSProvider:1.4.0'
Maven
io.github.aghajari
AXEmojiView
1.4.0
pom
Usage
Let'sSTART!😃
InstallEmojiProvider
Firststep,youshouldinstallEmojiViewwithyourEmojiProvider!
AXEmojiManager.install(this,newAXIOSEmojiProvider());
CustomEmojiProvider
IfyouwannadisplayyourownEmojisyoucancreateyourownimplementationofEmojiProviderandpassittoAXEmojiManager.install.
BasicUsage
CreateanAXEmojiEditTextinyourlayout.
Now,youshouldcreateaPage.
Currentpagesare:
EmojiView
SingleEmojiView
StickerView
Let'stryEmojiView:
AXEmojiEditTextedt=findViewById(R.id.edt);
AXEmojiViewemojiView=newAXEmojiView(this);
emojiView.setEditText(edt);
AndaddthispagetoAXEmojiPopup:
Note:AXEmojiPopupdeprecated!UseAXEmojiPopupLayoutinstead.
AXEmojiPopupemojiPopup=newAXEmojiPopup(emojiView);
emojiPopup.toggle();//TogglesvisibilityofthePopup.
emojiPopup.show();//ShowsthePopup.
emojiPopup.dismiss();//DismissesthePopup.
emojiPopup.isShowing();//ReturnstruewhenPopupisshowing.
Andwearedone!😃
Output:
Backtocontents
AXEmojiPopupLayout
youcanalsocreateanAXEmojiPopupLayoutinsteadofAXEmojiPopup!
ibelievethatAXEmojiPopupLayouthasbetterperformance,morecustomizableandit'sfaster.
createanAXEmojiPopupLayoutinyourlayout.
addthecreatedpagetoAXEmojiPopupLayout:
AXEmojiPopupLayoutlayout=findViewById(R.id.layout);
layout.initPopupView(emojiView);
layout.toggle();//TogglesvisibilityofthePopup.
layout.show();//ShowsthePopup.
layout.dismiss();//DismissesthePopup.
layout.hideAndOpenKeyboard();//Hidesthepopup
layout.isShowing();//ReturnstruewhenPopupisshowing.
OutputisjustsameastheAXEmojiPopup'soutput!
Backtocontents
SingleEmojiView
SingleEmojiViewisaRecyclerViewandallemojiswillloadinonepage(SameAsTelegramInc)
AXSingleEmojiViewemojiView=newAXSingleEmojiView(this);
emojiView.setEditText(edt);
Output:
Backtocontents
StickerView
StickerView:
youhavetocreateyourStickerProviderandloadallyourStickers(fromUrl,Res,Bitmaporanythingyouwant!)
seeexample:WhatsAppProvider
AXStickerViewstickerView=newAXStickerView(this,"stickers",newMyStickerProvider());
Result:
AlsoyoucancreateyourcustompagesinStickerProvider.seeexample:ShopStickers
Output:
Backtocontents
AXEmojiPager-UseMultiplePagesTogether!
youcancreateanAXEmojiPagerandaddallyourpages(EmojiView,StickerView,...)totheEmojiPager
EnableFooterviewinthemesettings(ifyouwant):
AXEmojiManager.getEmojiViewTheme().setFooterEnabled(true);
AndCreateyourEmojiPager:
AXEmojiPageremojiPager=newAXEmojiPager(this);
AXSingleEmojiViewsingleEmojiView=newAXSingleEmojiView(this);
emojiPager.addPage(singleEmojiView,R.drawable.ic_msg_panel_smiles);
AXStickerViewstickerView=newAXStickerView(this,"stickers",newWhatsAppProvider());
emojiPager.addPage(stickerView,R.drawable.ic_msg_panel_stickers);
emojiPager.setSwipeWithFingerEnabled(true);
emojiPager.setEditText(edt);
AXEmojiPopupemojiPopup=newAXEmojiPopup(emojiPager);
//layout.initPopupView(emojiPager);
Addsearchbuttontothefooter:
emojiPager.setLeftIcon(R.drawable.ic_ab_search);
//ClickListener
emojiPager.setOnFooterItemClicked(newAXEmojiPager.onFooterItemClicked(){
@Override
publicvoidonClick(booleanleftIcon){
if(leftIcon)Toast.makeText(EmojiActivity.this,"SearchClicked",Toast.LENGTH_SHORT).show();
}
});
Output:
Backtocontents
CreateYourCustomPages
CreateanAXEmojiBase(ViewGroup)andloadyourpagelayout
AndaddyourCustomPagetoemojiPager
Example:LoadingPage
emojiPager.addPage(newLoadingView(this),R.drawable.msg_round_load_m);
Output:
Backtocontents
AXEmojiSearchView
NowyoucansearchfortheemojibytextinthedefaultAXEmojiView'sdatabase(Morethan5800+words!)oryourowndbwiththeAXEmojiSearchVieworyourowncustomizedview!
Example:
popupLayout.setSearchView(newAXEmojiSearchView(this,emojiPager.getPage(0)));
emojiPager.setOnFooterItemClicked(newAXEmojiPager.OnFooterItemClicked(){
@Override
publicvoidonClick(Viewview,booleanleftIcon){
if(leftIcon)layout.showSearchView();
}
});
Output:
Backtocontents
PopupAnimation
ansmoothpopupanimationhasbeenenabledfortheAXEmojiPopupLayout.
popupLayout.setPopupAnimationEnabled(true);
popupLayout.setPopupAnimationDuration(250);
popupLayout.setSearchViewAnimationEnabled(true);
popupLayout.setSearchViewAnimationDuration(250);
Output:
Backtocontents
Customization
CustomizethemewithAXEmojiTheme.
AXEmojiManager.getEmojiViewTheme().setSelectionColor(0xffFF4081);
AXEmojiManager.getEmojiViewTheme().setFooterSelectedItemColor(0xffFF4081);
AXEmojiManager.getEmojiViewTheme().setFooterBackgroundColor(Color.WHITE);
AXEmojiManager.getEmojiViewTheme().setSelectionColor(Color.TRANSPARENT);
AXEmojiManager.getEmojiViewTheme().setSelectedColor(0xffFF4081);
AXEmojiManager.getEmojiViewTheme().setCategoryColor(Color.WHITE);
AXEmojiManager.getEmojiViewTheme().setAlwaysShowDivider(true);
AXEmojiManager.getEmojiViewTheme().setBackgroundColor(Color.LTGRAY);
AXEmojiManager.getStickerViewTheme().setSelectedColor(0xffFF4081);
AXEmojiManager.getStickerViewTheme().setCategoryColor(Color.WHITE);
AXEmojiManager.getStickerViewTheme().setAlwaysShowDivider(true);
AXEmojiManager.getStickerViewTheme().setBackgroundColor(Color.LTGRAY);
Output:
Backtocontents
CustomFooter
//disabledefaultfooter
AXEmojiManager.getEmojiViewTheme().setFooterEnabled(false);
AXEmojiManager.getInstance().setBackspaceCategoryEnabled(false);
//addyourownfootertotheAXEmojiPager
EmojiPager.setCustomFooter(footerView,true);
Output:
Backtocontents
DarkMode
Style1
AXEmojiManager.getEmojiViewTheme().setFooterEnabled(true);
AXEmojiManager.getEmojiViewTheme().setSelectionColor(0xff82ADD9);
AXEmojiManager.getEmojiViewTheme().setSelectedColor(0xff82ADD9);
AXEmojiManager.getEmojiViewTheme().setFooterSelectedItemColor(0xff82ADD9);
AXEmojiManager.getEmojiViewTheme().setBackgroundColor(0xFF1E2632);
AXEmojiManager.getEmojiViewTheme().setCategoryColor(0xFF1E2632);
AXEmojiManager.getEmojiViewTheme().setFooterBackgroundColor(0xFF1E2632);
AXEmojiManager.getEmojiViewTheme().setVariantPopupBackgroundColor(0xFF232D3A);
AXEmojiManager.getEmojiViewTheme().setVariantDividerEnabled(false);
AXEmojiManager.getEmojiViewTheme().setDividerColor(0xFF1B242D);
AXEmojiManager.getEmojiViewTheme().setDefaultColor(0xFF677382);
AXEmojiManager.getEmojiViewTheme().setTitleColor(0xFF677382);
AXEmojiManager.getStickerViewTheme().setSelectionColor(0xff82ADD9);
AXEmojiManager.getStickerViewTheme().setSelectedColor(0xff82ADD9);
AXEmojiManager.getStickerViewTheme().setBackgroundColor(0xFF1E2632);
AXEmojiManager.getStickerViewTheme().setCategoryColor(0xFF1E2632);
AXEmojiManager.getStickerViewTheme().setDividerColor(0xFF1B242D);
AXEmojiManager.getStickerViewTheme().setDefaultColor(0xFF677382);
Output:
Style2
AXEmojiManager.getEmojiViewTheme().setFooterEnabled(true);
AXEmojiManager.getEmojiViewTheme().setSelectionColor(Color.TRANSPARENT);
AXEmojiManager.getEmojiViewTheme().setSelectedColor(0xff82ADD9);
AXEmojiManager.getEmojiViewTheme().setFooterSelectedItemColor(0xff82ADD9);
AXEmojiManager.getEmojiViewTheme().setBackgroundColor(0xFF1E2632);
AXEmojiManager.getEmojiViewTheme().setCategoryColor(0xFF232D3A);
AXEmojiManager.getEmojiViewTheme().setFooterBackgroundColor(0xFF232D3A);
AXEmojiManager.getEmojiViewTheme().setVariantPopupBackgroundColor(0xFF232D3A);
AXEmojiManager.getEmojiViewTheme().setVariantDividerEnabled(false);
AXEmojiManager.getEmojiViewTheme().setDividerColor(0xFF1B242D);
AXEmojiManager.getEmojiViewTheme().setDefaultColor(0xFF677382);
AXEmojiManager.getEmojiViewTheme().setTitleColor(0xFF677382);
AXEmojiManager.getEmojiViewTheme().setAlwaysShowDivider(true);
AXEmojiManager.getStickerViewTheme().setSelectionColor(0xff82ADD9);
AXEmojiManager.getStickerViewTheme().setSelectedColor(0xff82ADD9);
AXEmojiManager.getStickerViewTheme().setBackgroundColor(0xFF1E2632);
AXEmojiManager.getStickerViewTheme().setCategoryColor(0xFF232D3A);
AXEmojiManager.getStickerViewTheme().setDividerColor(0xFF1B242D);
AXEmojiManager.getStickerViewTheme().setDefaultColor(0xFF677382);
AXEmojiManager.getStickerViewTheme().setAlwaysShowDivider(true);
Output:
Backtocontents
Views
AXEmojiPopupLayout
AXEmojiBase/AXEmojiLayout
AXEmojiView
AXSingleEmojiView
AXStickerView
AXEmojiSearchView
AXEmojiEditText
AXEmojiMultiAutoCompleteTextView
AXEmojiButton
AXEmojiImageView
AXEmojiTextView
AXEmojiCheckBox
AXEmojiRadioButton
Backtocontents
Listeners
onEmojiActions:
voidonClick(Viewview,Emojiemoji,booleanfromRecent,booleanfromVariant);
voidonLongClick(Viewview,Emojiemoji,booleanfromRecent,booleanfromVariant);
onStickerActions:
voidonClick(Viewview,Stickersticker,booleanfromRecent);
voidonLongClick(Viewview,Stickersticker,booleanfromRecent);
onEmojiPagerPageChanged:
voidonPageChanged(AXEmojiPageremojiPager,AXEmojiBasebase,intposition);
PopupListener:
voidonDismiss();
voidonShow();
voidonKeyboardOpened(intheight);
voidonKeyboardClosed();
voidonViewHeightChanged(intheight);
Backtocontents
ReplaceStringWithEmojis
firstyouneedtogetUnicodeofemoji:
Stringunicode=AXEmojiUtils.getEmojiUnicode(0x1f60d);//orEmoji.getUnicode();
Or
Stringunicode="😍";
nowsetittoyourviewwithAXEmojiUtils.replaceWithEmojis.
Example:SetActionBarTitle:
Stringtitle="AXEmojiView"+unicode;
getSupportActionBar().setTitle(AXEmojiUtils.replaceWithEmojis(this,title,20));
Output:
Backtocontents
RecentManagerAndVariantManager
youcanaddyourcustomrecentManagerforemojisandstickers.implementstoRecentEmoji/RecentSticker
AXEmojiManager.setRecentEmoji(emojiRecentManager);
AXEmojiManager.setRecentSticker(stickerRecentManager);
DisableRecentManagers:
AXEmojiManager.getInstance().disableRecentManagers();
Backtocontents
VariantView
youcanalsocreateyourownVariantPopupView!
butyoudon'tneedto,thedefaultoneisalsonice:)
TheDefaultVariant:
Backtocontents
EmojiLoader
youcanaddancustomEmojiLoaderwithAXEmojiLoader:
AXEmojiManager.setEmojiLoader(newEmojiLoader(){
@Override
publicvoidloadEmoji(AXEmojiImageViewimageView,Emojiemoji){
imageView.setImageDrawable(emoji.getDrawable(imageView.getContext());
}
});
Backtocontents
AnimatedStickers(AXrLottie)
SeeAXrLottie
Backtocontents
AXMemojiView
AXMemojiViewisapageforAXEmojiViewwhichshowsmemojijustlikestickers
Backtocontents
DownloadApk
Version:1.3.0
LastUpdate:4January2021
DownloadApk
Backtocontents
Author
AmirHosseinAghajari
SpecialthankstotheTelegram!(Usinglatesttelegramemojisupdate!)
TelegramID:@KingAmir272
License
Copyright2020AmirHosseinAghajari
LicensedundertheApacheLicense,Version2.0(the"License");
youmaynotusethisfileexceptincompliancewiththeLicense.
YoumayobtainacopyoftheLicenseat
http://www.apache.org/licenses/LICENSE-2.0
Unlessrequiredbyapplicablelaworagreedtoinwriting,software
distributedundertheLicenseisdistributedonan"ASIS"BASIS,
WITHOUTWARRANTIESORCONDITIONSOFANYKIND,eitherexpressorimplied.
SeetheLicenseforthespecificlanguagegoverningpermissionsand
limitationsundertheLicense.
AmirHosseinAghajari•Email•GitHub
About
anadvancedlibrarywhichaddsemoji,sticker,...supporttoyourAndroidapplication.
Topics
emoji
emoji-unicode
emoji-keyboard
lottie
stickers
stickerview
animated-stickers
emoji-loader
emojiview
memoji
emoji-provider
Resources
Readme
License
Apache-2.0License
Releases
6
AXEmojiView1.4.0
Latest
Aug14,2021
+5releases
Contributors2
Languages
Java
100.0%
Youcan’tperformthatactionatthistime.
Yousignedinwithanothertaborwindow.Reloadtorefreshyoursession.
Yousignedoutinanothertaborwindow.Reloadtorefreshyoursession.