为Android创建自定义阿拉伯语键盘

时间:2015-10-13 15:53:35

标签: android mobile keyboard keycode

我想在Android中创建自定义键盘。 我想用这个代码 http://code.tutsplus.com/tutorials/create-a-custom-keyboard-on-android--cms-22615[ ^]

但现在我想制作阿拉伯语键盘,但我有问题,因为阿拉伯语ASCII代码是两部分而XML不支持 我使用此网站转换:http://www.asciitohex.com/[ ^]

例如'ش'代码是'216 180'但我不能在这个XML中使用它:

1 个答案:

答案 0 :(得分:1)

对于阿拉伯语,波斯语等(utf-8)字符自定义键盘你应该在java类中使用characeter, 该算法找到在xml中定义的密钥代码,并使用它们在阿拉伯语中使用相同的字符,

如上面的教程,他们为“ش”字符编写的代码应如下所示:

public void onKey(int primaryCode, int[] keyCodes) {
    InputConnection ic = getCurrentInputConnection();
    playClick(primaryCode);
    switch (primaryCode) {
    case Keyboard.KEYCODE_DELETE:
        ic.deleteSurroundingText(1, 0);
        break;
    case Keyboard.KEYCODE_SHIFT:
        caps = !caps;
        keyboard.setShifted(caps);
        kv.invalidateAllKeys();
        break;
    case Keyboard.KEYCODE_DONE:
        ic.sendKeyEvent(new KeyEvent(KeyEvent.ACTION_DOWN, KeyEvent.KEYCODE_ENTER));
        break;
    default:
        char code = (char) primaryCode;
        if (Character.isLetter(code) && caps) {
            code = Character.toUpperCase(code);
        }
        if (code == 97) {
            ic.commitText(" ش",1);// your character

        } else {
            ic.commitText(String.valueOf(code), 1);
        }
    }
}