自定义<Key>的外观

Bar*_*man 10 android android-widget android-layout

某些第三方键盘在每个键上都有多个字符,例如,Better Keyboard 8在每个键上的字母上方都有数字和标点符号:

更好的键盘屏幕截图

这可以用<Key>标签完成吗?如果是这样,我无法弄清楚如何.如果有人知道如何,我将不胜感激.

先谢谢你,巴里

Bar*_*man 27

我想通了,所以我回答了自己的问题.

它不能用XML完成,但可以通过覆盖KeyboardView的onDraw()方法在Java中完成.在父类绘制键之后,这个无意义的示例在每个键的顶部绘制一个小写字母:

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

        Paint paint = new Paint();
        paint.setTextAlign(Paint.Align.CENTER);
        paint.setTextSize(25);
        paint.setColor(Color.RED);

        List<Key> keys = getKeyboard().getKeys();
        for(Key key: keys) {
            if(key.label != null)
                canvas.drawText(key.label.toString(), key.x + (key.width/2), key.y + 25, paint);
        }
    }
}
Run Code Online (Sandbox Code Playgroud)