Aghajari/AXEmojiView: an advanced library which adds emoji ...

文章推薦指數: 80 %
投票人數:10人

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.



請為這篇文章評分?