自定义<key> </key>的外观

时间:2011-05-14 07:57:56

标签: android android-layout android-widget

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

Better Keyboard screen shot

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

提前致谢, 百里

1 个答案:

答案 0 :(得分:26)

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

它不能用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);
        }
    }
}