带有2个标签的Android自定义键盘(右上角有主标签和小标签)

Tim*_*Tim 2 keyboard android android-keypad android-layout android-softkeyboard

我正在实现自己的自定义键盘。

我使用本教程来实现键盘

<?xml version="1.0" encoding="utf-8"?>
Run Code Online (Sandbox Code Playgroud)

 <Row>
    <Key android:keyLabel="q" android:keyEdgeFlags="left"/>
    <Key android:keyLabel="w"/>
    <Key android:keyLabel="e"/>
    <Key android:keyLabel="r"/>
    <Key android:keyLabel="t"/>
    <Key android:keyLabel="y"/>
    <Key android:keyLabel="u"/>
    <Key android:keyLabel="i"/>
    <Key android:keyLabel="o"/>
    <Key android:keyLabel="p" android:keyEdgeFlags="right"/>
</Row>
Run Code Online (Sandbox Code Playgroud)

我想在按键上有2个标签。与下面的图片相同(红色):

在此处输入图片说明

如何更改键盘xml以具有此功能?当我们长按按钮时,我们应该选择数字而不是字母

Yak*_*kov 5

您需要创建一个KeyboardView扩展类并重写OnDraw方法,如下所示:

public class MKeyboardView extends KeyboardView {
    @Override
    public void onDraw(Canvas canvas) {
        super.onDraw(canvas);

        Paint paint = new Paint();
        paint.setTextSize(15);
        paint.setColor(Color.GRAY);

        List<Key> keys = getKeyboard().getKeys();
        for(Key key: keys) {
        if(key.codes[0] == 113)
            canvas.drawText("1", key.x + (key.width/2), key.y + 25, paint);
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

您可以通过更改x和y参数来更改位置。

请享用 :)