在软键盘上显示多行/多个字符作为键标签

5

你好,我正在处理与Android软键盘相关的工作。通常情况下,键上显示的标签是单个字符,如下所示:

enter image description here

上述内容仅通过在键盘中的Key标记中使用keylabel属性来显示我们想要的文本。但现在我的要求是在单个键上显示多个字符,如下所示:

enter image description here

我已经找到了一种解决方法,即使用android:keyIcon,但其限制是需要让用户可以更改任何字符的颜色,例如1为红色、|为蓝色、q为绿色。因此,它必须可配置为任何颜色。这就是为什么我跳过使用keyIcon属性来显示字符文本。

那么有没有办法在键上设置多个字符呢?

2个回答

1
标准的Android框架提供的KeyboardView不支持显示次要文本(或多个字符)。为了实现您所需的功能,您需要对KeyboardView(或简单地View)进行子类化,并实现其onDraw方法并直接绘制到Canvas。
您可以检查latinIME KeyboardView的源代码,其中使用提示标签实现了此功能。 此外,您需要编写自己的解析器以解析键盘xml。您可以在这里查看LatinIME中的操作方式。
了解LatinIME中的完整包Keyboard将非常有助于您的要求。

嗨 @dinesh,我已经实现了这些帮助但没有得到任何响应。但是当我使用 onDraw() 时,我得到了一个异常。 - Aniket
@Aniket:你遇到了什么异常?还能分享一下你所实现的源代码吗? - dinesh
谢谢您的回复,顺便说一句,我已经在您的回答下方发布了我的答案并发布了我的异常问题。http://stackoverflow.com/questions/19464703/soft-keyboard-getting-nullpointerexception-when-calling-canvas-drawtext - Aniket

1

你好,我参考了自定义<Key>的外观,已经完成了它。

通过修改给定的代码,三天后我得到了解决方案。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接