Android sdk软键盘准确性

时间:2012-11-08 14:11:53

标签: android android-softkeyboard

我刚刚在eclipse中导入了sdk软键盘(API版本16中的示例代码,但也尝试了早期版本)并将其安装在我的设备上(Galaxy Note 10.1,Galaxy S2和Galaxy Nexus)。 经过一些测试后,我注意到一个奇怪的行为:当我敲击顶部的一个键时,键盘会向我显示该字母的建议,该字母位于我真正按下的字母上方。 对于我目前的研究,我需要实现一个软键盘并添加一些功能。但是对于这些功能,我需要一个精确的键盘。

您能否确认行为并向我提出如何解决的建议?

非常感谢你。

1 个答案:

答案 0 :(得分:5)

经过几个小时的搜索,我终于找到了解决问题的方法。

Android示例键盘使用从KeyboardViewStyle继承的KeyboardView 在android源代码中,我找到了Widget.KeyboardView

的定义
<style name="Widget.KeyboardView" parent="android:Widget">
    <item name="android:background">@android:drawable/keyboard_background</item>
    <item name="android:keyBackground">@android:drawable/btn_keyboard_key</item>
    <item name="android:keyTextSize">22sp</item>
    <item name="android:keyTextColor">#FFFFFFFF</item>
    <item name="android:keyPreviewLayout">@android:layout/keyboard_key_preview</item>
    <item name="android:keyPreviewOffset">-12dip</item>
    <item name="android:keyPreviewHeight">80dip</item>
    <item name="android:labelTextSize">14sp</item>
    <item name="android:popupLayout">@android:layout/keyboard_popup_keyboard</item>
    <item name="android:verticalCorrection">-10dip</item>
    <item name="android:shadowColor">#BB000000</item>
    <item name="android:shadowRadius">2.75</item>
</style>

我注意到以下一行:

<item name="android:verticalCorrection">-10dip</item>

为了解决我的问题,我定义了自己的样式,它继承自Widget.KeyboardView并以下列方式覆盖android:verticalCorrection

<style name="Widget.MyKeyboardView" parent="android:Widget.KeyboardView">
    <item name="android:verticalCorrection">0dip</item>
</style>

最后我将风格应用到我的键盘上。

etvoilà:)