加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

扫码枪中的大小写处理以及按键对应关系

发布时间:2020-12-15 06:32:09 所属栏目:百科 来源:网络整理
导读:安卓系统的扫码输入,首先安卓中按键对应的数值需要从SDK包的KeyEvent.java中查询,这其中的比如 public static final int KEYCODE_A = 29; // apublic static final int KEYCODE_SHIFT_LEFT = 59; //shiftpublic static final int KEYCODE_ENTER = 66; //回

安卓系统的扫码输入,首先安卓中按键对应的数值需要从SDK包的KeyEvent.java中查询,这其中的比如

public static final int KEYCODE_A = 29; // a
public static final int KEYCODE_SHIFT_LEFT = 59; //shift
public static final int KEYCODE_ENTER = 66; //回车
public static final int KEYCODE_MINUS = 69; // -

特别注意 扫码内容为 aaAA-回车
实际上按键获取顺序为 29 29 29 59 29 59 69 66
a对应29
A对应29 59
所以在处理输出时,需要先把输入内容暂存到一个StringBuffer中,如果检测到输入keyCode == 59 那么把最后一位的小写变为大写,其中包含一些特殊符号处理

private char getLastKeyUpperCase() {

    char outChar;

    if (lastKeyCode >= KeyEvent.KEYCODE_A && lastKeyCode <= KeyEvent.KEYCODE_Z) {
        //字母
 outChar = (char) ('A' + lastKeyCode - KeyEvent.KEYCODE_A);
    } else if (lastKeyCode >= KeyEvent.KEYCODE_0 && lastKeyCode <= KeyEvent.KEYCODE_9) {
        //数字
 outChar = (char) ('0' + lastKeyCode - KeyEvent.KEYCODE_0);
    } else {
        //其他符号
 switch (lastKeyCode) {
            case KeyEvent.KEYCODE_PERIOD:
                outChar = '.';
                break;
            case KeyEvent.KEYCODE_MINUS:
                outChar = '_';
                break;
            case KeyEvent.KEYCODE_SLASH:
                outChar = '/';
                break;
            case KeyEvent.KEYCODE_BACKSLASH:
                outChar = '|';
                break;
            default:
                outChar = 0;
                break;
        }
    }


    return outChar;
}

另外要注意 安卓的键盘输入的值和asc码值不同
比如a在安卓中是29 但是在asc码中是97,所以要有一层转换关系,代码见上面

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读