我正在开发Android的自定义键盘,我遇到了一个问题。我需要能够从键盘输出ASCII字符(即∅,⌲,⌓等),或者能够从键盘上添加图像到选定的EditText。我知道这是可能的,因为Emoji用它们的键盘来做。他们找到了一种向任何EditText添加图像的方法,无论他们是否创建了EditText。
有没有人知道他们是如何完成这个的?
答案 0 :(得分:1)
经过几个小时的博客,Stackoverflow和互联网的其他部分,我发现除非你拥有EditText,否则基本上不可能将自定义图像添加到EditText。
然而,一切都没有丢失。在查看了有关UTF-8,ASCII和其他字符集的文档之后,我发现我需要的所有字符都是UTF-8。我只需输出unicode值:InputConnection inputConnection = getCurrentInputConnection();
inputConnection.commitText(text, 1);
它正确地出现在EditText中。其他键盘添加的所有字符(即股票Android,表情符号等)都出现在UTF-8字符集中。
答案 1 :(得分:0)
使用CompoundDrawables
将图片添加到EditText
。您可以通过android:drawableBottom android:drawableRight android:drawableLeft android:drawableTop
通过XML添加它们。您还可以使用Spannables
在EditText
内显示内嵌文字的图片。请在此处Spannables和此处Displaying emoticons in Android。
答案 2 :(得分:0)
我在一些研究中遇到过这个帖子,最后到了其他地方。是的,现在可以使用7.1中引入的新的 CommitContent API通过自定义IME将图像/ GIF发送到EditText,向后兼容,直到API级别13 - Honeycomb。
引用来自: https://developer.android.com/guide/topics/text/image-keyboard.html#how_it_works
使用Android 7.1(API级别25),Android SDK包含Commit Content API,为IME提供发送图像的通用方式 和其他丰富的内容直接到应用程序中的文本编辑器。 API是 也可在v13支持库中获得,版本号为25.0.0。我们 建议使用支持库,因为它在设备上运行 早在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