从Custom IME向EditText添加图像

问题描述 投票:1回答:3

我正在为Android定制键盘,我遇到了一个问题。我需要能够从键盘输出ASCII字符(即∅,⌲,⌓等),或者能够从键盘上添加图像到选定的EditText。我知道这是可能的,因为Emoji用它们的键盘来做。他们找到了一种向任何EditText添加图像的方法,无论他们是否创建了EditText。

有谁知道他们是如何完成这个的?

android emoji ime custom-keyboard
3个回答
0
投票

我在一些研究中遇到过这个帖子,最后到了其他地方。是的,现在可以使用7.1中引入的新CommitContent API通过自定义IME将图像/ GIF发送到EditText,向后兼容直到API级别13 - Honeycomb。

引自:https://developer.android.com/guide/topics/text/image-keyboard.html#how_it_works

enter image description here

借助Android 7.1(API级别25),Android SDK包含Commit Content API,它为IME提供了一种通用方式,可以将图像和其他丰富内容直接发送到应用程序中的文本编辑器。从版本25.0.0开始,该API也可在v13支持库中获得。我们建议使用支持库,因为它早在Android 3.2(API Level 13)上就在设备上运行,并且它包含简化实现的辅助方法。

我用最新的环聊更新测试了它,它的工作原理!

示例代码:https://developer.android.com/about/versions/nougat/android-7.1-samples.html#img-kbd-ime

我已将主应用程序和IME应用程序代码合并到一个项目中,这里是:https://github.com/satheeshwaran/ImageKeyboard-Android/tree/master

更新:

我使用这个API发布了两个应用程序,我认为它们做得很好,

https://play.google.com/store/apps/details?id=com.theweekendparty.indianmemekeyboard

https://play.google.com/store/apps/details?id=com.theweekendparty.indiangifboardbollywood


1
投票

经过几个小时的博客,Stackoverflow和互联网的其余部分,我发现除非你拥有EditText,否则基本上不可能将自定义图像添加到EditText。

然而,一切都没有丢失。在查看了有关UTF-8,ASCII和其他字符集的文档之后,我发现我需要的所有字符都是UTF-8。我只需输出unicode值:

InputConnection inputConnection = getCurrentInputConnection();
inputConnection.commitText(text, 1);

它正确地出现在EditText中。其他键盘添加的所有字符(即股票Android,表情符号等)都出现在UTF-8字符集中。


0
投票

使用CompoundDrawables将图像添加到EditText。您可以通过android:drawableBottom android:drawableRight android:drawableLeft android:drawableTop通过XML添加它们。您还可以使用SpannablesEditText中显示内嵌文本的图像。在这里查看SpannablesDisplaying emoticons in Android

© www.soinside.com 2019 - 2024. All rights reserved.