Emoji alternatives and similar packages
Based on the "Other Widget" category.
Alternatively, view Emoji alternatives based on common mentions on social networks and blogs.
-
AndroidSlidingUpPanel
This library provides a simple way to add a draggable sliding up panel (popularized by Google Music and Google Maps) to your Android application. Brought to you by Umano. -
BottomBar
(Deprecated) A custom view component that mimics the new Material Design Bottom Navigation pattern. -
ShortcutBadger
An Android library supports badge notification like iOS in Samsung, LG, Sony and HTC launchers. -
Litho (By Facebook)
A declarative framework for building efficient UIs on Android. -
SystemBarTint
[DEPRECATED] Apply background tinting to the Android system UI when using KitKat translucent modes -
DragSortListView
Android ListView with drag and drop reordering. -
TapTargetView
An implementation of tap targets from the Material Design guidelines for feature discovery. -
android-viewbadger
[DEPRECATED] A simple way to "badge" any given Android view at runtime without having to cater for it in layout -
android-pdfview
[DEPRECATED] A fast PDF reader component for Android development -
android-stackblur
Android StackBlur is a library that can perform a blurry effect on a Bitmap based on a gradient or radius, and return the result. The library is based on the code of Mario Klingemann. -
android-iconify
Android integration of multiple icon providers such as FontAwesome, Entypo, Typicons,... -
DraggablePanel
Android library used to create an awesome Android UI based on a draggable element similar to the last YouTube graphic component. -
AndroidTreeView
AndroidTreeView. TreeView implementation for android -
android-pathview
Android view with both path from constructed path or from svg. -
aFileChooser
[DEPRECATED] Android library that provides a file explorer to let users select files on external storage. -
Swipecards
A Tinder-like Android library to create the swipe cards effect. You can swipe left or right to like or dislike the content. -
android-viewflow
A horizontal view scroller library for Android -
MaterialIntroScreen
Inspired by Heinrich Reimer Material Intro and developed with love from scratch -
TourGuide
TourGuide is an Android library that aims to provide an easy way to add pointers with animations over a desired Android View -
MultiSnapRecyclerView
Android library for multiple snapping of RecyclerView -
chromeview
Android WebView implementation that uses the latest Chromium code -
android-segmented-control
ios UISegmentedControl for android -
StickyGridHeaders
An Android Library that makes it easy to make grid views with sectioned data and headers that stick to the top. -
FloatingView
FloatingView can make the target view floating above the anchor view with cool animation -
HoloColorPicker
An Android Holo themed colorpicker designed by Marie Schweiz -
TileView
TileView is a subclass of android.view.ViewGroup that asynchronously displays, pans and zooms tile-based images. Plugins are available for features like markers, hotspots, and path drawing. -
Android-SwipeToDismiss
Android swipe-to-dismiss mini-library and sample code -
StandOut
StandOut lets you easily create floating windows in your Android app. -
Flashbar
⚡️A highly customizable, powerful and easy-to-use alerting library for Android. -
Bubbles for Android
Bubbles for Android is an Android library to provide chat heads capabilities on your apps. With a fast way to integrate with your development. -
FancyCoverFlow
A cool Open Source CoverFlow view for Android with several fancy effects. -
SwipeStack
A simple, customizable and easy to use swipeable view stack for Android. -
Android-ActionItemBadge
This library offers a simple method to add a small badge icon to your ActionBar-MenuItem -
RippleView
View that imitates Ripple Effect on click which was introduced in Android L (for Android 2.3+) -
android-sliding-layer-lib
Highly customizable SlidingLayer as you have seen in Wunderlist -
SortableTableView
An Android library containing a simple TableView and an advanced SortableTableView providing a lot of customisation possibilities to fit all needs. -
android-uitableview
Library and example project on how to use the UITableView component -
ScratchView
ScratchView repo is UX Design involving scratch cards like views which are scratched to reveal the information they conceal. -
SwipeSelector
A nicer-looking, more intuitive and highly customizable alternative for radio buttons and dropdowns for Android.
Appwrite - The Open Source Firebase alternative introduces iOS support
* Code Quality Rankings and insights are calculated and provided by Lumnify.
They vary from L1 to L5 with "L5" being the highest.
Do you think we are missing an alternative of Emoji or a related project?
README
Emoji
A library to add Emoji support to your Android app. Emojis can be picked in a PopupWindow. In order to edit and display text with Emojis this library provides public APIs:
- [
EmojiAutoCompleteTextView
](emoji/src/main/java/com/vanniktech/emoji/EmojiAutoCompleteTextView.kt) - [
EmojiButton
](emoji/src/main/java/com/vanniktech/emoji/EmojiButton.kt) - [
EmojiCheckbox
](emoji/src/main/java/com/vanniktech/emoji/EmojiCheckbox.kt) - [
EmojiEditText
](emoji/src/main/java/com/vanniktech/emoji/EmojiEditText.kt) - [
EmojiMultiAutoCompleteTextView
](emoji/src/main/java/com/vanniktech/emoji/EmojiMultiAutoCompleteTextView.kt) - [
EmojiTextView
](emoji/src/main/java/com/vanniktech/emoji/EmojiTextView.kt)
There's also a [EmojiLayoutFactory
](emoji/src/main/java/com/vanniktech/emoji/EmojiLayoutFactory.kt), which can be used to get automatic Emoji support when using normal Android Views such as TextView
, Checkbox
, etc.
Material Design Library bindings can be included via:
implementation "com.vanniktech:emoji-material:0.12.0"
- [
EmojiMaterialButton
](emoji-material/src/main/java/com/vanniktech/emoji/material/EmojiMaterialButton.kt) - [
EmojiMaterialRadioButton
](emoji-material/src/main/java/com/vanniktech/emoji/material/EmojiMaterialRadioButton.kt) - [
MaterialCheckBox
](emoji-material/src/main/java/com/vanniktech/emoji/material/MaterialCheckBox.kt) - [
EmojiTextInputEditText
](./emoji-material/src/main/java/com/vanniktech/emoji/material/EmojiTextInputEditText.kt)
There's also a [MaterialEmojiLayoutFactory
](emoji-material/src/main/java/com/vanniktech/emoji/material/MaterialEmojiLayoutFactory.kt), which can be used to get automatic Emoji support.
The library has 4 different providers to choose from (iOS, Google, Facebook & Twitter).
iOS Emojis
For getting the above iOS Emojis simply add the dependency and code below.
implementation "com.vanniktech:emoji-ios:0.12.0"
And install the provider in your application class.
EmojiManager.install(IosEmojiProvider());
For getting the above Google Emojis simply add the dependency and code below.
implementation "com.vanniktech:emoji-google:0.12.0"
And install the provider in your application class.
EmojiManager.install(GoogleEmojiProvider());
For getting the above Facebook Emojis simply add the dependency and code below.
implementation "com.vanniktech:emoji-facebook:0.12.0"
And install the provider in your application class.
EmojiManager.install(FacebookEmojiProvider());
For getting the above Twitter Emojis simply add the dependency and code below.
implementation "com.vanniktech:emoji-twitter:0.12.0"
And install the provider in your application class.
EmojiManager.install(TwitterEmojiProvider());
Custom Emojis
If you want to display your own Emojis you can create your own implementation of [EmojiProvider
](emoji/src/main/java/com/vanniktech/emoji/EmojiProvider.kt) and pass it to EmojiManager.install
.
All of the core API lays in emoji
, which is being pulled in automatically by the provided implementations:
implementation "com.vanniktech:emoji:0.12.0"
Set up
Inserting Emojis
Declare your [EmojiEditText
](emoji/src/main/java/com/vanniktech/emoji/EmojiEditText.kt) in your layout xml file.
<com.vanniktech.emoji.EmojiEditText
android:id="@+id/emojiEditText"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:imeOptions="actionSend"
android:inputType="textCapSentences|textMultiLine"
android:maxLines="3"/>
To open the [EmojiPopup
](emoji/src/main/java/com/vanniktech/emoji/EmojiPopup.kt) execute the code below:
final EmojiPopup emojiPopup = EmojiPopup(rootView, emojiEditText);
emojiPopup.toggle(); // Toggles visibility of the Popup.
emojiPopup.dismiss(); // Dismisses the Popup.
emojiPopup.isShowing(); // Returns true when Popup is showing.
The rootView
is the rootView of your layout xml file which will be used for calculating the height of the keyboard.
emojiEditText
is the [EmojiEditText
](emoji/src/main/java/com/vanniktech/emoji/EmojiEditText.kt) that you declared in your layout xml file.
Displaying Emojis
<com.vanniktech.emoji.EmojiTextView
android:id="@+id/emojiTextView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
Just use the [EmojiTextView
](emoji/src/main/java/com/vanniktech/emoji/EmojiTextView.kt) and call setText
with the String that contains Unicode encoded Emojis. To change the size of the displayed Emojis use the lineHeight
property from TextView.
EmojiPopup Listeners
The [EmojiPopup
](emoji/src/main/java/com/vanniktech/emoji/EmojiPopup.kt) class allows you to declare several listeners.
EmojiPopup(
onSoftKeyboardCloseListener = { },
onEmojiClickListener = { },
onSoftKeyboardOpenListener = { },
onEmojiPopupShownListener = { },
onEmojiPopupDismissListener = { },
onEmojiBackspaceClickListener = { },
)
EmojiPopup Configuration
Custom Recent Emoji implementation
You can pass your own implementation of the recent Emojis. Implement the [RecentEmoji
](emoji/src/main/java/com/vanniktech/emoji/RecentEmoji.kt) interface and pass it when you're building the [EmojiPopup
](emoji/src/main/java/com/vanniktech/emoji/EmojiPopup.kt):
EmojiPopup(
recentEmoji = yourClassThatImplementsRecentEmoji,
)
If no instance or a null instance is set the [default implementation](emoji/src/main/java/com/vanniktech/emoji/RecentEmojiManager.kt) will be used.
Custom Variant Emoji implementation
You can pass your own implementation of the variant Emojis. Implement the [VariantEmoji
](emoji/src/main/java/com/vanniktech/emoji/VariantEmoji.kt) interface and pass it when you're building the [EmojiPopup
](emoji/src/main/java/com/vanniktech/emoji/EmojiPopup.kt):
EmojiPopup(
variantEmoji = yourClassThatImplementsVariantEmoji,
)
If no instance or a null instance is set the [default implementation](emoji/src/main/java/com/vanniktech/emoji/VariantEmojiManager.kt) will be used.
Custom Search Emoji implementation
You can pass your own implementation for searching Emojis. Implement the [SearchEmoji
](emoji/src/main/java/com/vanniktech/emoji/SearchEmoji.kt) interface and pass it when you're building the [EmojiPopup
](emoji/src/main/java/com/vanniktech/emoji/EmojiPopup.kt):
EmojiPopup(
searchEmoji = yourClassThatImplementsSearchEmoji,
)
If no instance or a null instance is set the [default implementation](emoji/src/main/java/com/vanniktech/emoji/SearchEmojiManager.kt) will be used.
Animations
Custom keyboard enter and exit animations
You can pass your own animation style for enter and exit transitions of the Emoji keyboard while you're building the [EmojiPopup
](emoji/src/main/java/com/vanniktech/emoji/EmojiPopup.kt):
EmojiPopup(
keyboardAnimationStyle = emoji_fade_animation_style,
)
If no style is set the keyboard will appear and exit as a regular PopupWindow. This library currently ships with two animation styles as an example:
- R.style.emoji_slide_animation_style
- R.style.emoji_fade_animation_style
Custom page transformers
You can pass your own Page Transformer for the Emoji keyboard View Pager while you're building the [EmojiPopup
](emoji/src/main/java/com/vanniktech/emoji/EmojiPopup.kt):
EmojiPopup(
pageTransformer = MagicTransformer(),
)
If no transformer is set ViewPager will behave as its usual self. Please do note that this library currently does not ship any example Page Transformers.
Other goodies
- [
MaximalNumberOfEmojisInputFilter
](./emoji/src/main/kotlin/com/vanniktech/emoji/inputfilters/MaximalNumberOfEmojisInputFilter.kt) can be used to limit the number of Emojis one can type into an EditText - [
OnlyEmojisInputFilter
](./emoji/src/main/kotlin/com/vanniktech/emoji/inputfilters/OnlyEmojisInputFilter.kt) can be used to limit the input of an EditText to emoji only - [
ForceSingleEmojiTrait
](./emoji/src/main/kotlin/com/vanniktech/emoji/traits/ForceSingleEmojiTrait.kt) can be used to force a single emoji which can be replaced by a new one - [
DisableKeyboardInputTrait
](./emoji/src/main/kotlin/com/vanniktech/emoji/traits/DisableKeyboardInputTrait.kt) disable input of the normal soft keyboard - [
SearchInPlaceTrait
](./emoji/src/main/kotlin/com/vanniktech/emoji/traits/SearchInPlaceTrait.kt) search for an emoji using :query - [
EmojiView
](emoji/src/main/java/com/vanniktech/emoji/EmojiView.kt) View of all emojis and categories which does not depend on a keyboard EmojiEditText#disableKeyboardInput()
to disable normal keyboard input. To undo call#enableKeyboardInput()
Most of them are also showcased in the sample app.
Snapshots
This library is also distributed as a SNAPSHOT, if you like to check out the latest features.
Note: The API is not stable and may change and break your code at any time if you use a SNAPSHOT.
Add this to your repositories:
maven { url "https://oss.sonatype.org/content/repositories/snapshots" }
And one of these to your dependencies:
implementation "com.vanniktech:emoji:0.13.0-SNAPSHOT"
implementation "com.vanniktech:emoji-ios:0.13.0-SNAPSHOT"
implementation "com.vanniktech:emoji-google:0.13.0-SNAPSHOT"
implementation "com.vanniktech:emoji-twitter:0.13.0-SNAPSHOT"
implementation "com.vanniktech:emoji-facebook:0.13.0-SNAPSHOT"
implementation "com.vanniktech:emoji-material:0.13.0-SNAPSHOT"
Proguard
No configuration needed.
License
Copyright (C) 2016 - Niklas Baudy, Ruben Gees, Mario Đanić and contributors
Licensed under the Apache License, Version 2.0
*Note that all licence references and agreements mentioned in the Emoji README section above
are relevant to that project's source code only.