Android做按住显密码的View

先让EditText能显示密码与明文切换,使用这个方法:

/** @category 让EditText内的密码显示明文或显示mask符号 */
	public void setPasswordVisibility(EditText et, boolean flag) {
		int type = flag ? InputType.TYPE_TEXT_VARIATION_VISIBLE_PASSWORD
				: (InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_VARIATION_PASSWORD);
		et.setInputType(type);
	}
然后再给显出的View加onTouch事件:

// TODO 显示或mask密码
			admin_mask.setOnTouchListener(new OnTouchListener() {

				@Override
				public boolean onTouch(View v, MotionEvent event) {
					if (event.getAction() == MotionEvent.ACTION_DOWN) {
						setPasswordVisibility(admin_pwd, true);
						input(v, false);
					} else if (event.getAction() == MotionEvent.ACTION_UP) {
						setPasswordVisibility(admin_pwd, false);
					}
					return true;
				}
			});
不过有个BUG就是在按住的同时手指移动了,这个时候是不会响应的。试着加入ACTION_MOVE可是不行,还望高手指点。

你可能感兴趣的:(android,view,按住显密码)