如何在kitkat /棒棒糖系统键盘中更改android软键盘的外观

时间:2015-08-29 18:11:24

标签: android android-softkeyboard ime

我正在尝试为Android设备创建自定义ime / softkeyboard。如何在kitkat /棒棒糖系统键盘中更改其外观

1 个答案:

答案 0 :(得分:2)

您必须创建自定义KeyboardView并覆盖onDraw方法。

public class CustomKeyboardView extends KeyboardView {
    package com.example.xyz;
    -----
    -----
    -----

    @Override
    public void onDraw(Canvas canvas) {

        List<Keyboard.Key> keys = getKeyboard().getKeys();
        for (Keyboard.Key key : keys) {

            if (key.icon != null) {
                key.icon.setBounds(key.x, key.y, key.x + key.width, key.y + key.height);
                key.icon.draw(canvas);
            } else if (key.label != null) {
                String keyLabel = key.label.toString();
                if (caps) {
                    keyLabel = keyLabel.toUpperCase();
                }
                canvas.drawText(keyLabel, key.x + (key.width / 2),
                        key.y + (key.height / 2) + Utils.dpToPx(5, mContext), mPaint);
            }
          }


      }

    -----
    -----
}

现在,在键盘布局(.xml)文件中,您必须使用<android.inputmethodservice.KeyboardView />标记。

将其更改为<com.example.xyz.CustomKeyboardView />

布局看起来像KitKat / Lollipop。您可以根据自己的要求进行其他更改。

请注意,每次按键盘上的键时都会调用onDraw()。因此,不要添加需要时间来处理的代码。它可能导致键盘滞后。