我正在尝试为Android设备创建自定义ime / softkeyboard。如何在kitkat /棒棒糖系统键盘中更改其外观
答案 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()
。因此,不要添加需要时间来处理的代码。它可能导致键盘滞后。