Android 滑塊驗證

先上圖看看實現效果java

 

1.在 app 的 build.gradle 添加依賴

implementation 'com.luozm.captcha:captcha:1.1.2'

2.將 Captcha 添加至佈局文件

<com.luozm.captcha.Captcha
        android:id="@+id/captCha"
        android:layout_centerInParent="true"
        android:layout_width="match_parent"
        android:layout_height="265dp"
        android:layout_marginRight="10dp"
        android:layout_marginLeft="10dp"
        app:mode="mode_bar"
        app:src="@drawable/validate"
        app:blockSize="50dp"
        android:scaleType="centerCrop"
        app:max_fail_count="4"/>

3.添加 Java 代碼

public void showw(String advPic) {

        Context context = MainActivity.this;
        diaa = new Dialog(context, R.style.edit_AlertDialog_style);
        diaa.setContentView(R.layout.item_pict);

        captcha = diaa.findViewById(R.id.captCha);
        final Button btn_mode = diaa.findViewById(R.id.btn_mode);
        final Captcha captcha = diaa.findViewById(R.id.captCha);
        ImageView cuowu = diaa.findViewById(R.id.im_cuowu);
        // Glide.with(getApplication()).load(advPic).into(captcha );
        captcha.setBitmap(advPic);

        btn_mode.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                if (captcha.getMode() == Captcha.MODE_BAR) {
                    captcha.setMode(Captcha.MODE_NONBAR);
                    btn_mode.setText("滑動條模式");
                } else {
                    captcha.setMode(Captcha.MODE_BAR);
                    btn_mode.setText("無滑動條模式");
                }
            }
        });

        cuowu.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                diaa.dismiss();
                itData(mLongitude, mLatitude);
            }
        });

        captcha.setCaptchaListener(new Captcha.CaptchaListener() {
            @Override
            public String onAccess(long time) {
                Toast.makeText(MainActivity.this, "驗證成功", Toast.LENGTH_SHORT).show();


                diaa.dismiss();
                diaa.setCanceledOnTouchOutside(true);
                return "驗證經過";

            }

            @Override
            public String onFailed(int count) {
                Toast.makeText(MainActivity.this, "驗證失敗,失敗次數" + count, Toast.LENGTH_SHORT).show();
                return "驗證失敗";
            }

            @Override
            public String onMaxFailed() {
                Toast.makeText(MainActivity.this, "驗證超過次數,你的賬號被封鎖", Toast.LENGTH_SHORT).show();
                return "能夠走了";
            }

        });

        diaa.show();

        diaa.setCanceledOnTouchOutside(true);


        Window w = diaa.getWindow();
        WindowManager.LayoutParams lp = w.getAttributes();
        lp.x = 0;
        lp.y = 40;
        diaa.onWindowAttributesChanged(lp);
 
    }
相關文章
相關標籤/搜索