自定义输入法(键盘)中的键高度

时间:2014-03-13 20:17:15

标签: android input keyboard android-softkeyboard

我在Android应用中添加了一个稍微修改过的Gingerbread键盘版本。这适用于大多数设备,但很少有用户报告显示问题。

作为简化示例,我使用了Gingerbread keyboard on Github中的代码。我也可以在那里重现问题:

在GenyMotion仿真器(Nexus 7,Android 4.1.1,API 16,1280x800)中可以看到一个问题,我自己编写的键盘看起来像

Wrong keyboard row height

从Play商店(https://play.google.com/store/apps/details?id=com.moo.android.inputmethod.latin.free&hl=de)安装Gingerbread键盘似乎是正确的:

Correct keyboard row height

键盘行高度定义为

<Keyboard
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:keyWidth="10%p"
    android:horizontalGap="0px"
    android:verticalGap="@dimen/key_bottom_gap"
    android:keyHeight="@dimen/key_height"
>

<dimen name="key_height">0.290in</dimen>

适用于所有屏幕尺寸(没有值-hdpi或类似,只有值文件夹)。

现在我想知道可能导致这种行为的原因是什么?为什么“我的”键盘与Play商店版本不同?当然我无法保证它的代码完全相同,但是由于AOSP的Gingerbread键盘代码看起来一样,我想这对我的工具链或清单来说更加困难?

我尝试使用Android SDK级别17和SDK级别8,但结果相同。还有什么想法吗?

1 个答案:

答案 0 :(得分:0)

不要在键盘定义中使用android:keyHeight="@dimen/key_height",而是尝试使用android:keyHeight="6%p"之类的内容。您可能需要使用百分比来使其看起来正确。