表情符号选择器是一种界面解决方案,可提供现代外观和风格、最新的表情符号,并且易于使用。用户可以浏览并选择表情符号及其变体 或选择最近用过的表情符号
借助此库,各种来源的应用可以提供包容性和 为用户提供统一的表情符号体验,而无需开发者 维护自己的表情符号选择器。
功能
表情符号选择器具有以下功能。
最新的表情符号
表情符号选择器中会选择性地包含新发布的表情符号。Emoji Picker 库可与多个 Android 版本和设备兼容。
粘性变体
长按某个表情符号可显示变体菜单,例如不同性别或肤色。您选择的变体会保存在表情符号选择器中,主面板中会使用上次选择的变体。
借助此功能,用户只需点按一下即可发送首选的表情符号变体。
<ph type="x-smartling-placeholder">近期使用的表情符号
<ph type="x-smartling-placeholder">RecentEmojiProvider
负责在
最近用过类别。该库包含一个默认最近用过的表情符号提供程序
可满足最常见的用例要求:
- 所有选定的表情符号都会按应用保存到共享偏好设置中。
- 选择器最多可反向显示三行所选表情符号(经过去重处理) 按时间顺序排列。
如果此默认行为已经足够,则您无需使用
setRecentEmojiProvider()
。
不过,您可能需要自定义提供程序的行为。这里是一些常见的 场景:
- 您想要为每个用户账号存储不同的所选表情符号。
- 您想使用除共享偏好设置以外的数据存储方式。
- 您想按频率显示近期使用的表情符号。
然后,您可以实现 RecentEmojiProvider
接口,并使用以下代码对其进行设置:
setRecentEmojiProvider()
。
方向选择器
从 Emoji 15.1 开始,表情符号选择器支持 双向表情符号。用户可以点按双向切换器进行切换 左右版本的表情符号之间。
多人表情符号选择器
用户可以轻触并按住情侣表情符号,以显示多人表情符号选择。
当用户选择表情符号情侣的左半部分或右半部分表情符号人时,选择器会在右下角显示预览,如图 7 和图 8 所示。选择两半表情符号后,用户可以选择预览 组成自定义表情符号组合。
与 EmojiCompat
的兼容性
启用后,系统会在表情符号选择器中使用 EmojiCompat
实例以如下形式呈现:
尽可能多地添加表情符号但是,表情符号选择器不需要 EmojiCompat
。
前提条件
您的应用必须以 Android 5.0(API 级别 21)或更高版本为目标平台。
使用库
在应用的
build.gradle
中导入androidx.emoji2:emojipicker:$version
文件。dependencies { implementation "androidx.emoji2:emojipicker:$version" }
膨胀 Emoji Picker 视图,并根据需要设置
emojiGridRows
和emojiGridColumns
。emojiGridColumns
的默认数量为 9。- 行数是根据父视图高度和
emojiGridColumns
。 - 为
emojiGridRows
使用浮点值,以指示用户可以滚动查看更多表情符号。
<androidx.emoji2.emojipicker.EmojiPickerView android:id="@+id/emoji_picker" android:layout_width="match_parent" android:layout_height="match_parent" app:emojiGridColumns="9" />
val emojiPickerView = EmojiPickerView(context).apply { emojiGridColumns = 15 layoutParams = ViewGroup.LayoutParams( ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT ) } findViewById<ViewGroup>(R.id.emoji_picker_layout).addView(emojiPickerView)
使用
setOnEmojiPickedListener()
将所选表情符号附加到视图。 例如,如需附加到EditText
,请执行以下操作:emojiPickerView.setOnEmojiPickedListener { findViewById<EditText>(R.id.edit_text).append(it.emoji) }
可以选择设置
RecentEmojiProvider
,如需查看示例,请参阅示例应用 实施。(可选)自定义样式。创建自己的样式以替换常见的主题属性,并将该样式应用于
EmojiPickerView
。例如: 替换colorControlNormal
会更改类别图标颜色。<style name="CustomStyle" > <item name="colorControlNormal">#FFC0CB</item> </style> <androidx.emoji2.emojipicker.EmojiPickerView android:id="@+id/emoji_picker" android:layout_width="match_parent" android:layout_height="match_parent" android:theme="@style/CustomStyle" app:emojiGridColumns="9" />
示例应用
表情符号选择器示例应用演示了基本用例以及以下其他场景:
- 重置
emojiGridRows
或emojiGridColumns
时重新计算布局。 - 被替换的最近用过的表情符号提供程序,按频率排序。
- 其他样式自定义功能。