상세 컨텐츠

본문 제목

[안드로이드] 패턴(patternLockView) 잠금 쉽게 만드는 방법

안드로이드

by aries574 2022. 2. 9. 18:58

본문


이번 시간에는 안드로이드 패턴 잠금

쉽게 만드는 방법에 대하여 알아보겠습니다.


목차

1. 실행 화면

2. 라이브러리 등록

3. 메인 화면 구성 activity_main.xml

4. 메인 코드 구현 MainActivity.java


1. 실행 화면



2. 라이브러리 등록

build.gradle(Module:프로젝트명:app)

dependencies 괄호 안에 아래 코드를 넣어주시면 됩니다.

implementation 'com.andrognito.patternlockview:patternlockview:1.0.0'

참조 문서

https://github.com/aritraroy/PatternLockView

 

GitHub - aritraroy/PatternLockView: An easy-to-use, customizable and Material Design ready Pattern Lock view for Android

An easy-to-use, customizable and Material Design ready Pattern Lock view for Android - GitHub - aritraroy/PatternLockView: An easy-to-use, customizable and Material Design ready Pattern Lock view f...

github.com

 

 

3. 메인 화면 구성 activity_main.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:gravity="center"
    android:orientation="vertical">

    <TextView
        android:id="@+id/password_text_view"
        android:layout_width="match_parent"
        android:layout_height="60dp"
        android:layout_marginTop="30dp"
        android:gravity="center"
        android:textSize="20sp" />

    <com.andrognito.patternlockview.PatternLockView
        android:id="@+id/pattern_lock_view"
        android:layout_width="280dp"
        android:layout_height="280dp"
        android:layout_marginTop="30dp"
        app:normalStateColor="#000000" />
</LinearLayout>



4. 메인 코드 구현 MainActivity.java

 - 구성 -

 1. 패턴 호출 

   1-1 등록한 패턴 없다면 저장된 패턴 없다고 표시

   1-2 등록한 패턴 있다면 등록한 패턴 입력하라고 표시

 2. 패턴 입력

   2-1 등록한 패턴 있다면 입력한 패턴과 비교

   2-2 등록한 패턴 없다면 입력한 패턴 등록

public class MainActivity extends AppCompatActivity {

    PatternLockView patternLockView;

    TextView passwordTextView; //패턴 상태

    String restorePassword = ""; //저장된 패스워드

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        passwordTextView = findViewById(R.id.password_text_view);

        patternLockView = findViewById(R.id.pattern_lock_view);
        patternLockView.addPatternLockListener(new PatternLockViewListener() {
            @Override
            public void onStarted() { }

            @Override
            public void onProgress(List<PatternLockView.Dot> progressPattern) { }

            @Override
            public void onComplete(List<PatternLockView.Dot> pattern) { //패턴 완료시에 실행됨

                //입력한 패스워드
                String password = PatternLockUtils.patternToString(patternLockView, pattern);

                //1-1 저장된 패스워드가 있다면
                if (!restorePassword.equals("")) {

                    //2-1 입력과 저장된 패스워드가 같다면
                    if (password.equals(restorePassword)) {

                        passwordTextView.setText("패턴 성공");
                        patternLockView.setCorrectStateColor(Color.parseColor("#0000FF")); //파랑
                    }

                    //2-2 입력과 저장된 패스워드가 다르다면
                    else {
                        passwordTextView.setText("잘못된 패턴");
                        patternLockView.setCorrectStateColor(Color.parseColor("#FF0000")); //빨강
                    }
                }

                //1-2 저장된 패스워드가 없다면
                else {
                    //현재 패스워드 저장
                    SharedPreferences pref = getSharedPreferences("pref", Activity.MODE_PRIVATE);
                    SharedPreferences.Editor editor = pref.edit();
                    editor.putString("password", password);
                    editor.commit();

                    passwordTextView.setText("저장되었습니다.");
                    patternLockView.clearPattern(); //지우기
                }
            }

            @Override
            public void onCleared() { }
        });
    }

    @Override
    protected void onResume() {
        super.onResume();
        restorePassword();
    }


    /**
     * 패스워드 불러오기
     */
    private void restorePassword() {

        SharedPreferences pref = getSharedPreferences("pref", Activity.MODE_PRIVATE);

        //저장된 패스워드 변수에 담기
        restorePassword = pref.getString("password", "");

        //등록한 비밀번호가 있을 때
        if (pref != null && !restorePassword.equals("")) {
            passwordTextView.setText("등록한 패턴을 입력해주세요.");
        }

        //등록한 비밀번호가 없을 때
        else {
            passwordTextView.setText("저장된 패턴이 없습니다.");
        }
    }

} //MainActivity

2022.02.08 - [안드로이드] - [안드로이드] 원형 다이얼로그( Dialog) 쉽게 만드는 방법

 

[안드로이드] 원형 다이얼로그( Dialog) 쉽게 만드는 방법

이번 시간에는 원형의 다이얼로그를 쉽게 만드는 방법을 알아보겠습니다. 목차 1. 실행 화면 2. 라이브러리 등록 3. 메인 화면 구성 activity_main.xml 4. 메인 코드 구현 MainActivity.java 1. 실..

aries574.tistory.com

2022.02.07 - [안드로이드] - [안드로이드] 상태 진행 표시줄 쉽게 만드는 방법

 

[안드로이드] 상태 진행 표시줄 쉽게 만드는 방법

이번 시간에는 현재 상태 진행상황을 알 수 있게 표시하는 방법을 알아보겠습니다. 목차 1. 실행 화면 2. 라이브러리 등록 3. 메인 화면 구성 activity_main.xml 4. 메인 코드 구현 MainActivity.jav.

aries574.tistory.com

2022.02.06 - [안드로이드] - [안드로이드] 카드뷰(CardView) 접었다 폈다 쉽게 하는 방법

 

[안드로이드] 카드뷰(CardView) 접었다 폈다 쉽게 하는 방법

이번 시간에는 카드뷰 접었다 폈다 쉽게 하는 방법에 대하여 알아보겠습니다. 목차 1. 실행 화면 2. 라이브러리 등록 3. 확장 화면 추가 4. 메인 화면 구성 activity_main.xml 5. 메인 코드 구현 MainA

aries574.tistory.com

반응형

관련글 더보기

댓글 영역