android 实现自定义安全键盘 且每次数字随机变换位置

在相关大佬的基础上做了修改 自定义安全键盘 https://github.com/peiniwan/SafeKeyBoard

但是没有实现随机键盘 本次以该demo中的数字键盘为例

如何在每次打开键盘的时候都变换对应按键的位置
在设置自定义键盘keyboardView.setKeyboard(keyboard) 之前 随机排列每一个按键

 // 这里以数字键盘为例  获取到键盘原有的按键 随机排列 然后在重新赋值
for(Keyboard.Key item : keyboardNumberOnly.getKeys()){
                int[] i = item.codes;
            }
            // 随机排序数字
            Collections.shuffle(keyCodes);

            // 遍历所有的按键
            List keys = keyboardNumberOnly.getKeys();
            int index = 0;
            for (Keyboard.Key key : keys) {
                int code = key.codes[0];
                // 如果按键是数字 去除左下角和右下角的非数字键
                if ( code != -5 && code != -2) {
                    char keyCode = keyCodes.get(index++);
                    key.codes[0] = keyCode;
                    key.label = Character.toString(keyCode);
                }
            }

这里有一个判断 if(code != -5 && code != -2) 这和定义的键盘xml有关
贴出代码 keyboard_num_only.xml




    
        
        
        
    

    
        
        
        
    

    
        
        
        
    

    
        
        
        
    

-5和-2 是底部角落里的两个固定按键 效果如图


随机键盘.png

你可能感兴趣的:(android 实现自定义安全键盘 且每次数字随机变换位置)