我已经关注了developer.android.com上有关 输入法的示例,并使用了SoftKeyboard示例应用程序.这些共同提供了有关简单键盘创建的足够信息.
我在API中看不到的是能够在标准键盘(LatinIME键盘)上为每个键创建备用/多个字符.

上面的图像是长按"a"键的结果.当您长按一个键时,可以使用替换字符填充弹出窗口.

也可以在某些键上给出一个弹出提示,提示用户按住一个键以获得弹出菜单.
到目前为止,我还没有找到关于如何实现这一目标的单一信息来源,希望有人能够给我一个良好的开端,直到那时我将遵循内置键盘的源代码,看看我是否可以进行逆向工程它.
编辑:如果developer.android.com的LatinIME键盘链接没有链接到一个羊的图片会有帮助:) LatinIME.java的实际源代码.
编辑2:更多作为参考而不是其他任何东西,这是我认为通常的longPress操作通过以便在KeyboardView.java中显示弹出键盘的序列:
onTouchEvent()
onModifiedTouchEvent()
mHandkler.handleMessage() with MSG_LONGPRESS
openPopupIfRequired() 
onLongPress()
编辑3:
我仍然没有想到这一点 - 如何向键添加标签建议?答案表明它没有内置到API中,事实上我还没有找到代码来执行此操作.但是,2.3.4(API 10)上的键盘显示正在实现此功能:

非常想弄清楚IT是如何做到的,但它不是onDraw()我能看到的方法中的任何地方- 这让我相信它是在KeyboardView元素之外编写的.然而,我无法找到layout用于在内置键盘上显示KeyboardView元素的文件 - 如果有人知道在哪里找到这个也许会给我提供我需要的线索.
编辑4:移动键预览问题,因为它稍微偏离主题:
我试图制作类似弹出窗口的东西,当点击片段中的视图时会出现.我想要这个弹出窗口或其他什么,不要让片段变暗,就像Dialog Fragment那样.而且我还希望弹出窗口位于单击视图的位置.如果它有自己的活动和布局会很好,所以我可以做一些自定义的更改.你能告诉我一些示例代码吗?
我正在开发Android软键盘:
public class CustomKeyboard extends Keyboard{...}  
    public class CustomKeyboardView extends KeyboardView{...}
    public class CustomKeyboardIME extends InputMethodService implements KeyboardView.OnKeyboardActionListener{...}
在某些键上,我有popupKeyboard和popupCharacters:
<Key android:codes="144" android:keyLabel="0" android:popupKeyboard="@xml/key_popup" android:popupCharacters=")" android:keyEdgeFlags="right"/>
XML/key_popup.xml:
<Keyboard xmlns:android="http://schemas.android.com/apk/res/android"
  android:keyWidth="10%p"
  android:horizontalGap="0px"
  android:verticalGap="0px"
  android:keyHeight="@dimen/key_height" >
但是当我长按"0"键弹出")"显示时,它会一直保持在那里直到我按下"X"按钮或")"字符.
而且我希望它只在我按住手指时打开.像iPhone键盘上的东西:
有人可以帮忙吗?
谢谢!!