private void setDoorLockState(final int state) {
dialog = new Dialog(this); dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);// 去除对话框的标题 dialog.setContentView(R.layout.unlock_password_dialog); // 在代码中设置界面大小的方法: Display display = getWindowManager().getDefaultDisplay(); // 获取屏幕宽、高 Window window = dialog.getWindow(); window.setGravity(Gravity.BOTTOM);// 对话框底对齐 window.setBackgroundDrawableResource(R.drawable.news_home_dialog_border); LayoutParams windowLayoutParams = window.getAttributes(); // 获取对话框当前的参数值 windowLayoutParams.width = (int) (display.getWidth()); // 宽度设置为屏幕的0.85 windowLayoutParams.height = (int) (display.getHeight() * 0.6); // 高度设置为屏幕的0.24 dialog.show(); dialog.setCancelable(false);// 点击外面和返回建无法隐藏 et_password = (EditText) dialog.findViewById(R.id.et_password); btn_1 = (Button) dialog.findViewById(R.id.btn_1); btn_2 = (Button) dialog.findViewById(R.id.btn_2); btn_3 = (Button) dialog.findViewById(R.id.btn_3); btn_4 = (Button) dialog.findViewById(R.id.btn_4); btn_5 = (Button) dialog.findViewById(R.id.btn_5); btn_6 = (Button) dialog.findViewById(R.id.btn_6); btn_7 = (Button) dialog.findViewById(R.id.btn_7); btn_8 = (Button) dialog.findViewById(R.id.btn_8); btn_9 = (Button) dialog.findViewById(R.id.btn_9); btn_10 = (Button) dialog.findViewById(R.id.btn_10); int[] a = { 4, 3, 1, 0, 5, 9, 2, 6, 8, 7 }; Button[] btn = { btn_1, btn_2, btn_3, btn_4, btn_5, btn_6, btn_7, btn_8, btn_9, btn_10 }; int[] b = new int[10];// 乱序键盘值数组 int c = (int) (Math.random() * 10);// 0-9的随机数 // 赋值于乱序键盘值数组 for (int i = 0; i < b.length; i++) { if (c + i < b.length) { b[i] = a[c + i]; } else { b[i] = a[i - b.length + c];// 比如随机数为7,把a[7]赋给b[0],a[]赋完以后,再从a【0】开始赋值给b【】 } } // ========================================================================给按钮赋值=================== for (int i = 0; i < btn.length; i++) { btn[i].setText(String.valueOf(b[i])); } // ========================================================================关闭键盘==================== dialog.findViewById(R.id.btn_close).setOnClickListener( new OnClickListener() { @Override public void onClick(View v) { dialog.dismiss(); } }); dialog.findViewById(R.id.iv_delete).setOnClickListener( new OnClickListener() { @Override public void onClick(View v) { int index = et_password.getSelectionStart(); Log.e("删除键", "------------------------------" + index); Editable editable = et_password.getText(); if (editable != null && index > 0) { editable.delete(index - 1, index); } } }); dialog.findViewById(R.id.btn_positive).setOnClickListener( new OnClickListener() { @Override public void onClick(View v) { // 对话框确定按钮 String password = et_password.getText().toString(); Log.e("密码", "------------------------------" + password); if (password.length() == 6) { final byte[] passwd = password.getBytes(); new Thread(new Runnable() { @Override public void run() { // TODO 点击确认键后的操作 } }).start(); dialog.dismiss(); // //-----------------------------------------------华丽分割线------5.7 } else if (TextUtils.isEmpty(password)) { ToastUtit .showToast(DoorLockActivity.this, "密码不能为空"); } else if (password.length() < 7) { ToastUtit.showToast(DoorLockActivity.this, "请输入6位密码"); } } }); btn_1.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // 对话框第1个按钮 et_password.append(btn_1.getText().toString()); } }); btn_2.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // 对话框第2个按钮 et_password.append(btn_2.getText().toString()); } }); btn_3.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // 对话框第3个按钮 et_password.append(btn_3.getText().toString()); } }); btn_4.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // 对话框第4个按钮 et_password.append(btn_4.getText().toString()); } }); btn_5.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // 对话框第5个按钮 et_password.append(btn_5.getText().toString()); } }); btn_6.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // 对话框第6个按钮 et_password.append(btn_6.getText().toString()); } }); btn_7.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // 对话框第7个按钮 et_password.append(btn_7.getText().toString()); } }); btn_8.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // 对话框第8个按钮 et_password.append(btn_8.getText().toString()); } }); btn_9.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // 对话框第9个按钮 et_password.append(btn_9.getText().toString()); } }); btn_10.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // 对话框第10个按钮 et_password.append(btn_10.getText().toString()); } });
以上的方法可直接复制到代码中,欢迎各位大牛提出批评意见