Android studio—密码规范与密码小眼睛

Android studio—密码规范与密码小眼睛

文章目录

  • Android studio—密码规范与密码小眼睛
    • 回顾博客
    • 具体功能完善
    • 效果预览
    • 规范密码
    • 密码小眼睛
      • 密码可见和不可见

本文主要对博主曾经的博客:Android studio—SQLite修改密码的功能进行进一步完善。除了原有的修改密码,注销账户功能外。
本次加入:1、规范密码:6-16位且开头为英语+数字组合
2、密码开头为大写3
3、密码小眼睛:可见与不可见

回顾博客

Android studio—SQlite数据库注册登录:https://blog.csdn.net/genijmni/article/details/106626300

Android studio—SQlite修改密码:https://blog.csdn.net/genijmni/article/details/106697445

Android studio—SQlite注销账号(删除账号):https://blog.csdn.net/genijmni/article/details/106698703

Android studio—登录注册功能实用技巧:https://blog.csdn.net/genijmni/article/details/106699294

具体功能完善

1、规范密码:6-16位且开头为英语+数字组合
2、密码开头为大写3
3、密码小眼睛:可见与不可见

效果预览

Android studio—密码规范与密码小眼睛_第1张图片

规范密码

通过对密码规范制定规则,以提高密码的安全性。
和规定手机号码一样,我们需要指定我们想要的规则:[A-Z]+[0-9A-Za-z]{6,16}

String regex="^(?=[A-Z])[0-9A-Za-z]{6,16}$";

在这里我们还需要了解一下JAVA中的一些规定:

  1. (?=rule)表示正排序下,该位必须匹配rule
  2. (?!rule)表示正排序序下,该位必须不能匹配rule
  3. (?<=rule)表示用在末尾必须匹配rule
  4. (?

如果你想要首位不必大写字母:

String regex="^(?=[A-Za-z])[0-9A-Za-z]{6,16}$";

在此基础上进行更改即可
通过这个规则完成:6-16位,开头为大写英文字母+数字组合
规则书写在主类之中,写在onCreate方法之外

public  boolean isContainAll(String string){
    String regex="^(?=[A-Z])[0-9A-Za-z]{6,16}$";
    Pattern pattern = Pattern.compile(regex);
    Matcher matcher= pattern.matcher(string);
    boolean isMatch=matcher.matches();
    return isMatch;
}

完成规则定义后,还需要进行正确的系统提示:
需要在XML文件新建一个TextView控件作为提示输出

if (isContainAll(password)==false)
{
    watch.setText("密码不得少于6位,且需要开头字母+数字组合");
} 

密码的规范到这,就大致完成了。

密码小眼睛

常用App的密码选项中,在右侧有一个小眼睛,方便用户对密码的可见和不可见进行操作。
Android studio—密码规范与密码小眼睛_第2张图片
我们需要怎么完成了,首先,我们需要在drawable中添加两张照片,一张是开眼,一张时闭眼:
开眼
闭眼
由于我这是网上截图的小眼睛(若侵权,请告知,我会删除)
随后我们需要先在布局文件中添加一个ImagView图片控件,放在密码栏右侧

<ImageView
                android:layout_width="0dp"
                android:id="@+id/eye"
                android:layout_weight="1"
                android:layout_marginTop="30dp"
                android:layout_height="wrap_content"/>

随后在JAVA文件中对控件定义,并将密码密码先为隐藏:

private boolean hide =true;   //设置为隐藏
private ImageView eye;  //定义控件
eye = findViewById(R.id.eye);   //绑定控件
eye.setImageResource(R.drawable.close);   //选择初始样貌为闭眼

这样准备阶段完成,后分别定义密码可见和密码不可见状态。

密码可见和不可见

通过switch方法,对可见和不可见进行选择:

 eye.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                switch (v.getId()){
                    case R.id.eye:
                        if (hide == true){
                            eye.setImageResource(R.drawable.open);  //可见样貌
                            HideReturnsTransformationMethod method = HideReturnsTransformationMethod.getInstance(); //可见
                            userpassword.setTransformationMethod(method);
                            hide = false;
                        }else{
                            eye.setImageResource(R.drawable.close);  不可见样貌
                            TransformationMethod method = PasswordTransformationMethod.getInstance();  //隐藏
                            userpassword.setTransformationMethod(method);
                            hide = true;
                        }
                        int index = userpassword.getText().toString().length();
                        userpassword.setSelection(index);
                        break;
                }
            }
        });

如此就能完成密码小眼睛可见不可见功能。

你可能感兴趣的:(记录Android,开发学习,java,android,android,studio,移动开发,软件开发)