Android 滑块验证

Posted monkey0928

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Android 滑块验证相关的知识,希望对你有一定的参考价值。

先上图看看实现效果

 

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);
 
    }

 

 

以上是关于Android 滑块验证的主要内容,如果未能解决你的问题,请参考以下文章

从头开始查看寻呼机图像(片段)滑块

一行代码解决selenium进入抖音出现验证滑块

滑块菜单片段中的可交换选项卡

android 点击无效验证

selenium之滑块验证码破解代码详解

不写代码,如何用深度学习自动识别滑动验证码缺口位置?