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

    }
 

原文地址:https://www.cnblogs.com/monkey0928/p/9864094.html

时间: 2024-10-07 22:17:30

Android 滑块验证的相关文章

Android正则表达式验证邮箱地址

1 // 邮箱有效性验证 2 Pattern pattern = Pattern 3 .compile("\\w+([-+.]\\w+)*@\\w+([-.]\\w+)*\\.\\w+([-.]\\w+)*"); 4 Matcher mc = 5 pattern.matcher(RegistMail.getText().toString().trim()); 其中RegistMail为一个EditText控件,用来处理用户的邮箱输入. Android正则表达式验证邮箱地址,布布扣,bu

原生js实现拖动滑块验证

拖动滑块验证是现在的网站随处可见的,各式各样的拖动法都有. 下面实现的是某宝的拖动滑块验证: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Document</title> <style type="text/css"> .drag{position: relative;

Android客户端验证Licence的原理

需求 限制App的使用,使App只能在有许可的设备上运行. 分析及解决方案 原理 让App在每次运行的时候都连接服务器进行合法性验证--当然是一个很成熟可靠的方案: 但是这样做的局限也是每次都需要连接服务器,对一些不需要联网或者只连局域网的内部应用来说就太不可行了--服务端验证不可行的话就只能在客户端验证了. 一种客户端验证方法的基本原理: 取一个唯一的设备号A. 在客户端根据一个加密算法f(A)算出一个许可号B. 要求用户输入一个许可号C(Licence),与B进行比较,完成验证. 详细 设备

Android证书验证存漏洞 开发者身份信息可被篡改(转)

原帖地址:http://bbs.pediy.com/showthread.php?p=1335278#post1335278 近期在国内网易,雷锋网等网站爆出谷歌市场上的索尼官方的备份与恢复应用"Backup and Restore"被黑的消息.新闻显示:目前索尼官方的备份与恢复应用"Backup and Restore"已经被黑客彻底破解:甚至在Google Play商店里该应用的所有权都被黑客修改:目前仍不清楚使用破解修改版本的应用,会否对用户造成损害:建议用户

Android免费短信验证

转载请注明住处:http://blog.csdn.net/crazy1235/article/details/41912003 介绍 短信验证功能大家都很熟悉了.在很多地方都能见到,注册新用户或者短息验证支付等.短信验证利用短信验证码来注册会员,大大降低了非法注册,很大程度上提高了用户账户的安全性. 目前市面上已经有了很多提供短信验证的服务商,有收费的,也有免费的.如果是个人的开发者,用免费的是最划算的了!下面我就介绍一个免费的短信验证平台---Mob.com Mob平台提供的短信验证功能可以实

移动应用安全开发指南(Android)--数据验证

概述 移动应用往往通过数据的发送.接收和处理来完成一系列功能,通常情况下,处理的数据绝大部分都来源于外部(比如网络.内部或外部存储和用户输入等),对这些数据处理不当会导致各种各样的漏洞和风险,比代码执行和信息泄漏等等. 安全准则 A.      一般性原则:对所有外部数据进行数据验证,数据验证建议采用白名单的方式,即只允许指定的字符通过,其它字符一律过滤,同时验证数据的长度和类型等. B.      使用参数化查询语句防止SQL注入(参考附录3). C.      使用WebViews时,将Ja

JS拖动滑块验证

使用这种验证方法的目的:证明当前的用户不是机器人~防止恶意操作. 实现思路: 1.获取silde滑块(获取元素) 2.为元素注册事件———鼠标点击事件(onmousedown)鼠标点击之后获得当前鼠标的X坐标. 3.如何获取到鼠标的x坐标——使用clientX事件(当事件被触发时,鼠标指针的水平坐标). 4.鼠标移动事件发生后根据从最开始点击的X值到移动后的X值之差,作为滑块移动的差值———— 鼠标移动事件 (onmousemove): 5.获取鼠标移动之后的X坐标 6.获得初始X坐标和移动后X

Android 正则表达式验证手机号、姓名(包含少数民族)、身份证号

最近项目中新增的功能,需要对手机号.姓名.身份证号等一些信息进行验证,最好的方法是通过正则表达式来验证,网上查了一些资料,写了这几个工具方法. 1.验证手机号 规则:第一位只能是1,第二位为3-8中的数字,3-11位为任意的数字 /** * 手机号号段校验, 第1位:1: 第2位:{3.4.5.6.7.8}任意数字: 第3-11位:0-9任意数字 * @param value * @return */ public static boolean isTelPhoneNumber(String v

Android中验证输入是否为汉字及手机号,邮箱验证,IP地址可用port号验证

1,验证是否为汉字 // 验证昵称 private boolean verifyNickname() { String nickname = edt_username.getText().toString(); if (nickname == null || nickname.length() == 0) { edt_username.setError("不能为空"); return false; } int len = 0; char[] nickchar = nickname.to