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

标签 android android-layout keyboard android-softkeyboard android-keypad

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

我使用 this tutorial用于实现键盘

<?xml version="1.0" encoding="utf-8"?>

 <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>

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

enter image description here

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

最佳答案

您需要创建一个 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);
        }
    }
}

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

享受:)

关于带有 2 个标签的 Android 自定义键盘(右上角的主要标签和小标签),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18738452/

相关文章:

java - Android getOrientation 问题 - 沿轴镜像值

android - ViewPager fragment 在抽屉导航 fragment 内第二次无法正常工作

javascript - iPhone Web App - 防止键盘移动/上推 View - iOS8

java - 如何将十进制代码点转换为 UTF-16 Hex(java 语法)?

android - Google Android 语音识别的 API 限制

自定义 ListView 适配器上的 Android OnItemClickListener

android - 无法在 AndroidManifest.xml 中设置可调试标志

android - 通过在android中放置一个中心以圆形方式放置imageviews

android - 激活列表行和主 fragment 之间的绘图指示器

ios - 自定义键盘 InputAccessoryView 在 iOS 11 中不可见